Maison > Questions et réponses > le corps du texte
J'ai utilisé PHPMailer sur plusieurs projets, mais maintenant je suis bloqué. Cela m'a donné l'erreur :
Erreur SMTP : impossible de se connecter à l'hôte SMTP.
J'ai essayé d'envoyer des e-mails depuis Thunderbird et cela a fonctionné ! Mais pas via PHPMailer... Voici les paramètres pour Thunderbird :
Server Nom: Mail.exampleServer.com
Port: 587
Nom d'utilisateur: user@exampleServer.com
Authentification de sécurité: Non-Connexion Sécurité: starttls
Je les ai comparés au serveur de mon dernier projet utilisant PHPMailer et ce sont :
Nom du serveur : mail.exampleserver2.comPort : 465
Nom d'utilisateur : user@exampleserver2.com
Authentification sécurisée : Non
Sécurité de la connexion : SSL/TLS
Mon code php est :
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = SMTP_HOST; // SMTP servers
$mail->Port = SMTP_PORT; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = SMTP_USER; // SMTP username
$mail->Password = SMTP_PASSWORD; // SMTP password
$mail->From = MAIL_SYSTEM;
$mail->FromName = MAIL_SYSTEM_NAME;
$mail->AddAddress($aSecuredGetRequest['email']);
$mail->IsHTML(true); // send as HTML
Où est-ce que je me suis trompé ?
P粉3524080382023-10-13 14:23:02
Comme cette question revient si fréquemment dans Google, je voulais partager ici ma solution pour une situation où PHP vient d'être mis à niveau vers la version 5.6 (qui a un comportement SSL plus strict).
Le wiki PHPMailer a une section à ce sujet :
https://github.com/PHPMailer/ PHPMailer/wiki/Troubleshooting#php-56-certificate-verification-failure
Les solutions de contournement suggérées incluent le code suivant :
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
Cela devrait fonctionner avec PHPMailer 5.2.10 (et supérieur).
REMARQUE : Apparemment, comme suggéré dans ce wiki, cela devrait être une solution temporaire !