web-dev-qa-db-fra.com

Erreur lors de la demande d'e-mail de réinitialisation du mot de passe - authentification wp

Je reçois le message d'erreur suivant lorsqu'un utilisateur tente de demander un courrier électronique de réinitialisation de mot de passe:

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

Conformément aux recommandations que j'ai lues sur le Web, j'ai essayé plusieurs plugins SMTP. Aucun n'a travaillé. Enfin, j'ai obtenu des informations de débogage d'un. Tout d'abord, les paramètres SMTP que j'ai utilisés (pour gmail)

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

Voici le résultat:

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

Ce comportement est UNIQUEMENT présent sur le site distant. Les e-mails de récupération de mot de passe fonctionnent parfaitement sur la version locale. De plus, si cela n’était qu’un problème d’hébergeur Web, les plugins SMTP auraient fonctionné, ce qui n’est pas le cas.

Quelqu'un peut-il me diriger dans la bonne direction ici? Vous pouvez voir le comportement ici :ondancellc.com/wp-admin - essayez de demander la réinitialisation du mot de passe et tapez "testuser" en tant qu'utilisateur.

D'ailleurs, je n'ai eu aucun problème à configurer "testuser" mais je n'ai jamais reçu d'email avec mon mot de passe - même si j'en ai demandé un. Que se passe-t-il? Si ce sont les serveurs rackspace, pourquoi les plugins SMTP ne fonctionnent-ils pas?

2
timshutes

Cela ressemble à un problème de configuration du serveur, pas à WordPress. Vous avez dit que vous utilisiez Rackspace? Je n'ai pas d'expérience personnelle avec Rackspace, mais il semble qu'ils aient des problèmes connus avec la fonction par défaut PHP mail(). Voir:

  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/

Le problème principal est que l'envoi direct de mail () n'authentifie pas l'expéditeur, en utilisant des relais ouverts, ce qui pourrait être abusé et semble indiquer que Rackspace retarde ou ne prend pas bien en charge. C'est ce qui ne fonctionne pas comme prévu.

Excellente première étape pour essayer d’utiliser un plugin SMTP, car c’est la solution de contournement communément acceptée. Si PHPMailer vous donne des problèmes, il peut s'agir d'un problème avec la configuration d'origine. Vous pouvez également essayer le port 465 en utilisant SSL au lieu de TLS, qui est souvent le principal problème. En outre, utilisez-vous des mécanismes de sécurité supplémentaires de Google, tels que des mots de passe d'authentification à deux facteurs ou spécifiques à une application? C'est une autre chose à surveiller.

Si vous avez d'autres détails ou preuves, partagez-les.

2
Joshua

Votre hôte peut bloquer le courrier électronique en tant que "relais", car le courrier électronique "de" ne se trouve pas sur votre domaine, mais sur gmail.

Vous devez (normalement) définir le "de" sur quelque chose comme [email protected], en remplaçant "mydomain.com" par votre domaine actuel. De plus, le compte de messagerie [email protected] doit exister.

Donc, comme vous avez envoyé un courrier à partir de [email protected], le nom de domaine de la valeur "de" ne correspond pas à l'enregistrement de courrier de votre domaine, le service d'hébergement bloquera cela en tant que tentative de "relais de messagerie". (Les spammeurs aiment utiliser les relais de messagerie pour leur courrier indésirable. La plupart des services d'hébergement, ainsi que les destinataires, bloquent cette tentative.)

Par conséquent, lorsque vous utilisez la fonction mail(), assurez-vous que le paramètre "De" est [email protected], afin que le domaine de l'adresse de messagerie corresponde à votre domaine. Si vous souhaitez qu'ils répondent à une adresse électronique différente, définissez l'en-tête "Répondre à".

Même si tout fonctionne bien, vous devez toujours vous assurer que le courrier électronique de l'expéditeur (l'adresse électronique de l'expéditeur) appartient à votre domaine et que le compte de messagerie de l'expéditeur existe déjà sur votre compte de domaine/hébergement.

1
Rick Hellewell

Vous êtes-vous assuré que votre utilisateur admin a une "email" correspondante?

Le mien non, et une fois que j'ai ajouté l'e-mail, il a été résolu.

0
Jossie Calderon