2017-08-01 3 views
2

J'essaie d'envoyer un e-mail de test à une boîte de réception mailtrap.io, mais je continue d'obtenir ces erreurs lorsque j'active le débogage. Auparavant, j'obtenais une commande Nom d'utilisateur a échoué jusqu'à ce que j'ai ajouté AuthType = Connexion.Impossible d'envoyer le courrier avec PHPMailer et Mailtrap

2017-08-01 22:34:46 SERVER -> CLIENT: 220 mailtrap.io ESMTP ready 
2017-08-01 22:34:46 CLIENT -> SERVER: EHLO localhost 
2017-08-01 22:34:46 SERVER -> CLIENT: 250-mailtrap.io 250-SIZE 5242880 250-PIPELINING 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250-AUTH PLAIN LOGIN CRAM-MD5 250 STARTTLS 
2017-08-01 22:34:46 CLIENT -> SERVER: STARTTLS 
2017-08-01 22:34:46 SERVER -> CLIENT: 220 2.0.0 Start TLS 
2017-08-01 22:34:47 CLIENT -> SERVER: EHLO localhost 
2017-08-01 22:34:47 SERVER -> CLIENT: 250-mailtrap.io 250-SIZE 5242880 250-PIPELINING 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 AUTH PLAIN LOGIN CRAM-MD5 
2017-08-01 22:34:47 CLIENT -> SERVER: AUTH LOGIN 
2017-08-01 22:34:47 SERVER -> CLIENT: 334 xxxx 
2017-08-01 22:34:47 CLIENT -> SERVER: xxxxxxxxxxx= 
2017-08-01 22:34:47 SERVER -> CLIENT: 334 xxxxxxxxxxxx 
2017-08-01 22:34:47 CLIENT -> SERVER: 
2017-08-01 22:34:50 SERVER -> CLIENT: 535 5.7.0 Invalid login or password 2017-08-01 22:34:50 SMTP ERROR: Password command failed: 535 5.7.0 Invalid login or password 
2017-08-01 22:34:50 SMTP Error: Could not authenticate. 
2017-08-01 22:34:50 CLIENT -> SERVER: QUIT 
2017-08-01 22:34:51 SERVER -> CLIENT: 221 2.0.0 Bye 
2017-08-01 22:34:51 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 

Voici mon code sur la page qui essaie d'envoyer l'e-mail. Les informations d'identification sont stockées dans la classe Config et j'ai vérifié plusieurs fois que le nom d'utilisateur et le mot de passe correspondent à ceux fournis par la boîte de réception mailtrap. Actuellement, le port est fixé à 465. J'ai essayé 2525 ainsi aux mêmes résultats. Le port 25 ne fait que temporiser l'application.

if(isMethod('post')) { 
    if (isset($_POST['email'])) { 
     /********************* 
     *configure PHPMailer* 
     *********************/ 
     $mail = new PHPMailer(); 
     $mail->AuthType = 'LOGIN'; 
     $mail->SMTPDebug = 2; 
     $mail->isSMTP(); 
     $mail->Host = Config::SMTP_HOST; 
     $mail->SMTPAuth = true; 
     $mail->Username = Config::SMTP_USER; 
     $mail->Passowrd = Config::SMTP_PASSWORD; 
     $mail->SMTPSecure = 'tls'; 
     $mail->Port = Config::SMTP_PORT; 
     $mail->isHTML(true); 
     $mail->setFrom('[email protected]', 'My Name'); 
     if (!getEmailDb()) { 
      echo (displayMessage("E-Mail does not exist.", "warning")); 
     } 
     else { 
      $email = getEmailDb(); 
      $token = bin2hex(openssl_random_pseudo_bytes(50)); 
      $mail->addAddress($email); 
      $mail->Subject = 'This is a test email.'; 
      $mail->Body = 'Email body'; 

      if($mail->send()) { 
       echo (displayMessage("E-Mail sent. It should show up in your inbox pretty soon.", "success")); 
      } 
      else { 
       echo (displayMessage("Could not send E-Mail to ".$email, "warning")); 
      } 
     } 
    } 

}

+0

Définissez '$ mail-> SMTPDebug = 2;' pour que vous puissiez voir ce que le serveur dit. TLS ne fonctionnera pas au port 465; essayez 587. Lisez également le guide de dépannage sur lequel le message d'erreur pointe. – Synchro

+0

L'utilisation de ce port donne un délai d'expiration. Mailtrap dit d'utiliser 25, 465 ou 2525 pour les connexions SMTP. Je vais éditer ce message avec les informations de débogage de niveau 2 sous le port 465. – SolidSnackDrive

+0

Peut-être que [this] (https://stackoverflow.com/a/25670661/2917673) pourrait aider – Yolo

Répondre

0

la question trouvé. Vous ne pouvez pas simplement envoyer des messages à partir de localhost sans aucune configuration de serveur SMTP, c'est pourquoi je recevais des erreurs. Papercut pour Windows peut être utilisé pour tester l'envoi de courrier sur votre machine locale.