Maison >développement back-end >tutoriel php >Connexion SMTP : Pourquoi est-ce que j'obtiens « Échec de la connexion SMTP(). Le message n'a pas été envoyé.\ » ?
Erreur de connexion SMTP : "SMTP Connect() a échoué. Le message n'a pas été envoyé."
Le code PHP fourni pour l'envoi d'e-mails via SMTP rencontre une erreur : "SMTP -> ERREUR : Échec de la connexion au serveur : connexion expirée (110)".
Le problème provient de l'inclusion à la fois de $mail->IsSMTP(); et $mail->Mailer = "smtp"; lignes dans le code. Ces lignes sont redondantes et, lorsqu'elles sont utilisées ensemble, peuvent conduire à des configurations conflictuelles.
Solution :
Pour résoudre l'erreur, suivez la solution fournie et commentez ou supprimez la ligne :
<code class="php">$mail->IsSMTP();</code>
Cette ligne étant supprimée, la classe PHPmailer utilise le paramètre $mail->Mailer pour déterminer la méthode d'envoi des e-mails, qui est SMTP dans ce cas.
Exemple de code :
<code class="php">// require necessary classes require 'class.phpmailer.php'; require 'class.smtp.php'; // initialize PHPMailer $mail = new PHPMailer(); // use SMTP $mail->Mailer = "smtp"; // configure SMTP settings $mail->SMTPDebug = 2; $mail->Host = "ssl://smtp.gmail.com"; $mail->Port = 587; $mail->SMTPAuth = true; $mail->Username = "[email protected]"; $mail->Password = "mypasswword"; $mail->Priority = 1; // set email details $mail->AddAddress("[email protected]", "Name"); $mail->SetFrom($visitor_email, $name); $mail->AddReplyTo($visitor_email, $name); // compose email $mail->Subject = "Message from Contact form"; $mail->Body = $user_message; $mail->WordWrap = 50; if (!$mail->Send()) { echo 'Message was not sent.'; echo 'Mailer error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent.'; }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!