Ошибка при запросе сброса пароля для аутентификации по электронной почте - wp


Я получаю следующую ошибку всякий раз, когда пользователь пытается запросить электронное письмо для сброса пароля:

The e-mail could not be sent.
Possible reason: your host may have disabled the mail() function.

В соответствии с рекомендациями, которые я прочитал в Интернете, я попробовал несколько плагинов SMTP. Ничего не сработало. Наконец, я получил от одного из них некоторую отладочную информацию. Во-первых, настройки SMTP, которые я использовал (для gmail)

server:  smtp.gmail.com
port: 587
Security:  TLS
Require Auth:  Yes
User:  <myuser>@gmail.com
Pass:  mypass

Вот результат:

The result was:

bool(false)
The full debugging output is shown below:

object(PHPMailer)#365 (65) {
  ["Priority"]=>
  int(3)
  ["CharSet"]=>
  string(5) "UTF-8"
  ["ContentType"]=>
  string(10) "text/plain"
  ["Encoding"]=>
  string(4) "8bit"
  ["ErrorInfo"]=>
  string(95) "The following From address failed: <myuser>@gmail.com : Called Mail() without being connected"
  ["From"]=>
  string(20) "<myuser>@gmail.com"
  ["FromName"]=>
  string(10) "Tim Shutes"
  ["Sender"]=>
  string(0) ""
  ["ReturnPath"]=>
  string(0) ""
  ["Subject"]=>
  string(50) "WP Mail SMTP: Test mail to <myuser>@gmail.com"
  ["Body"]=>
  string(68) "This is a test email generated by the WP Mail SMTP WordPress plugin."
  ["AltBody"]=>
  string(0) ""
  ["MIMEBody:protected"]=>
  string(69) "This is a test email generated by the WP Mail SMTP WordPress plugin.
"
  ["MIMEHeader:protected"]=>
  string(453) "Date: Wed, 11 Sep 2013 20:33:18 +0000
Return-Path: <myuser>@gmail.com
To: <myuser>@gmail.com
From: Tim Shutes 
Subject: WP Mail SMTP: Test mail to <myuser>@gmail.com
Message-ID: 
X-Priority: 3
X-Mailer: PHPMailer 5.2.4 (http://code.google.com/a/apache-extras.org/p/phpmailer/)
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8

"
  ["mailHeader:protected"]=>
  string(0) ""
  ["WordWrap"]=>
  int(0)
  ["Mailer"]=>
  string(4) "smtp"
  ["Sendmail"]=>
  string(18) "/usr/sbin/sendmail"
  ["UseSendmailOptions"]=>
  bool(true)
  ["PluginDir"]=>
  string(0) ""
  ["ConfirmReadingTo"]=>
  string(0) ""
  ["Hostname"]=>
  string(0) ""
  ["MessageID"]=>
  string(0) ""
  ["MessageDate"]=>
  string(0) ""
  ["Host"]=>
  string(14) "smtp.gmail.com"
  ["Port"]=>
  string(2) "25"
  ["Helo"]=>
  string(0) ""
  ["SMTPSecure"]=>
  string(3) "ssl"
  ["SMTPAuth"]=>
  bool(true)
  ["Username"]=>
  string(20) "<myuser>@gmail.com"
  ["Password"]=>
  string(9) "<mypass>"
  ["AuthType"]=>
  string(0) ""
  ["Realm"]=>
  string(0) ""
  ["Workstation"]=>
  string(0) ""
  ["Timeout"]=>
  int(10)
  ["SMTPDebug"]=>
  int(2)
  ["Debugoutput"]=>
  string(4) "echo"
  ["SMTPKeepAlive"]=>
  bool(false)
  ["SingleTo"]=>
  bool(false)
  ["SingleToArray"]=>
  array(0) {
  }
  ["LE"]=>
  string(1) "
"
  ["DKIM_selector"]=>
  string(0) ""
  ["DKIM_identity"]=>
  string(0) ""
  ["DKIM_passphrase"]=>
  string(0) ""
  ["DKIM_domain"]=>
  string(0) ""
  ["DKIM_private"]=>
  string(0) ""
  ["action_function"]=>
  string(0) ""
  ["Version"]=>
  string(5) "5.2.4"
  ["XMailer"]=>
  string(0) ""
  ["smtp:protected"]=>
  object(SMTP)#364 (11) {
    ["SMTP_PORT"]=>
    int(25)
    ["CRLF"]=>
    string(2) "
"
    ["do_debug"]=>
    int(2)
    ["Debugoutput"]=>
    string(4) "echo"
    ["do_verp"]=>
    bool(false)
    ["Timeout"]=>
    int(10)
    ["Timelimit"]=>
    int(30)
    ["Version"]=>
    string(5) "5.2.4"
    ["smtp_conn:private"]=>
    bool(false)
    ["error:private"]=>
    array(1) {
      ["error"]=>
      string(37) "Called Mail() without being connected"
    }
    ["helo_rply:private"]=>
    NULL
  }
  ["to:protected"]=>
  array(1) {
    [0]=>
    array(2) {
      [0]=>
      string(23) "<myuser>@gmail.com"
      [1]=>
      string(0) ""
    }
  }
  ["cc:protected"]=>
  array(0) {
  }
  ["bcc:protected"]=>
  array(0) {
  }
  ["ReplyTo:protected"]=>
  array(0) {
  }
  ["all_recipients:protected"]=>
  array(1) {
    ["<myuser>@gmail.com"]=>
    bool(true)
  }
  ["attachment:protected"]=>
  array(0) {
  }
  ["CustomHeader:protected"]=>
  array(0) {
  }
  ["message_type:protected"]=>
  string(5) "plain"
  ["boundary:protected"]=>
  array(3) {
    [1]=>
    string(35) "b1_b0121eb40a93fb27be20cbb901b9250f"
    [2]=>
    string(35) "b2_b0121eb40a93fb27be20cbb901b9250f"
    [3]=>
    string(35) "b3_b0121eb40a93fb27be20cbb901b9250f"
  }
  ["language:protected"]=>
  array(18) {
    ["authenticate"]=>
    string(35) "SMTP Error: Could not authenticate."
    ["connect_host"]=>
    string(43) "SMTP Error: Could not connect to SMTP host."
    ["data_not_accepted"]=>
    string(30) "SMTP Error: Data not accepted."
    ["empty_message"]=>
    string(18) "Message body empty"
    ["encoding"]=>
    string(18) "Unknown encoding: "
    ["execute"]=>
    string(19) "Could not execute: "
    ["file_access"]=>
    string(23) "Could not access file: "
    ["file_open"]=>
    string(33) "File Error: Could not open file: "
    ["from_failed"]=>
    string(35) "The following From address failed: "
    ["instantiate"]=>
    string(36) "Could not instantiate mail function."
    ["invalid_address"]=>
    string(15) "Invalid address"
    ["mailer_not_supported"]=>
    string(25) " mailer is not supported."
    ["provide_address"]=>
    string(54) "You must provide at least one recipient email address."
    ["recipients_failed"]=>
    string(45) "SMTP Error: The following recipients failed: "
    ["signing"]=>
    string(15) "Signing Error: "
    ["smtp_connect_failed"]=>
    string(22) "SMTP Connect() failed."
    ["smtp_error"]=>
    string(19) "SMTP server error: "
    ["variable_set"]=>
    string(30) "Cannot set or reset variable: "
  }
  ["error_count:protected"]=>
  int(2)
  ["sign_cert_file:protected"]=>
  string(0) ""
  ["sign_key_file:protected"]=>
  string(0) ""
  ["sign_key_pass:protected"]=>
  string(0) ""
  ["exceptions:protected"]=>
  bool(false)
}
The SMTP debugging output is shown below:

SMTP -> ERROR: Failed to connect to server: Permission denied (13)

The following From address failed: <myuser>@gmail.com : Called Mail() without being connected

Такое поведение присутствует ТОЛЬКО на удаленном сайте. Электронные письма для восстановления пароля отлично работают в локальной сборке. Кроме того, я понимаю, что если бы это была просто проблема с веб-хостингом, то плагины SMTP работали бы, чего они не сделали.

Может ли кто-нибудь указать мне здесь правильное направление? Вы можете увидеть поведение здесь: abundancellc.com/wp-admin - попробуйте запросить сброс пароля и введите "testuser" в качестве пользователя.

Кстати, у меня не было проблем с настройкой "тестового пользователя", но я так и не получил электронное письмо с моим паролем, хотя и запросил его. Что происходит? Если это пространство для хранения серверы, почему плагины SMTP не работают?

Author: timshutes, 2013-09-11

3 answers

Звучит как проблема с конфигурацией сервера, а не с WordPress. Вы сказали, что использовали Rackspace? У меня нет личного опыта работы с Rackspace, но, похоже, у них есть некоторые известные проблемы с функцией PHP по умолчанию mail(). Видеть:

  1. http://feedback.rackspace.com/forums/71021-product-feedback/suggestions/1873281-fully-support-php-mail-function-
  2. http://www.joshuawinn.com/huge-email-delays-on-rackspace-cloud-sites-dont-use-php-mail/

Основная проблема заключается в том, что отправка напрямую через mail() не аутентифицирует отправителя с использованием открытых ретрансляторов, чем можно злоупотреблять, и кажется, что Rackspace задерживает или плохо поддерживает. Вот чем это не является работает так, как вы обычно ожидаете.

Отличный первый шаг в попытке использовать плагин SMTP, так как это общепринятый обходной путь. Если у вас проблемы с PHPMailer, это может быть проблема с исходной конфигурацией. Вы также можете попробовать порт 465, используя SSL вместо TLS, что часто является самой большой проблемой. Кроме того, используете ли вы какие-либо дополнительные механизмы безопасности от Google, такие как двухфакторная аутентификация или пароли для конкретных приложений? Это еще одна вещь, на которую следует обратить внимание.

Если вы у вас есть какие-либо другие подробности или доказательства, которыми вы делитесь.

 2
Author: Joshua, 2013-09-14 18:20:55

Ваш хост может блокировать электронную почту в качестве "ретранслятора", поскольку электронная почта "от" находится не в вашем домене, а в gmail.

Вы должны (обычно) установить "от" на что-то вроде [email protected] , меняющийся'mydomain.com - в ваши настоящие владения. И, кроме того, [email protected] учетная запись электронной почты должна существовать.

Итак, потому что вы отправили письмо с [email protected] , доменное имя со значением "от" не соответствует почтовой записи вашего домена, служба хостинга заблокирует это как попытка "ретрансляции почты". (Спамеры любят использовать почтовые ретрансляторы для своего спама, поэтому большинство служб хостинга - и получателей - заблокируют эту попытку.)

Итак, при использовании функции mail() убедитесь, что ваш параметр "от" равен [email protected] , таким образом, домен в письме от совпадает с вашим доменом. Если вы хотите, чтобы они отвечали на другой адрес электронной почты, установите заголовок "Ответить".

Даже если у вас все получилось, всегда следует убедиться, что электронное письмо отправителя ("от" адрес электронной почты) принадлежит вашему домену, и что учетная запись электронной почты отправителя существует в вашей учетной записи домена/хостинга.

 1
Author: Rick Hellewell, 2018-08-15 19:58:27

Вы убедились, что у вашего пользователя admin есть соответствующий "email"?

Мой не сделал этого, и как только я добавил электронное письмо, это было решено.

 0
Author: Jossie Calderon, 2018-08-15 18:20:22