Maison  >  Article  >  développement back-end  >  Comment résoudre les délais d'attente SMTP Connect() avec PHPMailer ?

Comment résoudre les délais d'attente SMTP Connect() avec PHPMailer ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-21 17:50:03980parcourir

How to Resolve SMTP Connect() Timeouts with PHPMailer?

Erreur SMTP Connect() : dépannage des délais d'attente de connexion

Lors de la tentative d'envoi d'e-mails à l'aide de PHPMailer, les utilisateurs peuvent rencontrer l'erreur suivante : "SMTP -> ERREUR : Échec de la connexion au serveur : la connexion a expiré (110) Échec de SMTP Connect() Le message n'a pas été envoyé. Erreur de messagerie : SMTP Connect() a échoué. Cette erreur provient souvent de difficultés de connexion entre le serveur et le script PHP.

En examinant le code PHP fourni, il a été remarqué que la ligne "$mail->IsSMTP();" était présent. Selon la documentation de PHPMailer, cette méthode est obsolète et n'est plus nécessaire. Supprimer ou commenter cette ligne résout le problème de délai de connexion :

<code class="php">// Remove or comment out the following line:
// $mail->IsSMTP();</code>

En supprimant ou en commentant la méthode "IsSMTP()", la connexion au serveur SMTP peut être établie avec succès. Le code complet ci-dessous montre la configuration corrigée de PHPMailer :

<code class="php">require 'class.phpmailer.php'; // path to the PHPMailer class
require 'class.smtp.php';

$mail = new PHPMailer();

$mail->Mailer = "smtp";
$mail->SMTPDebug = 2;
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "mypasswword"; // SMTP password 
$Mail->Priority = 1;

$mail->AddAddress("[email protected]","Name");
$mail->SetFrom($visitor_email, $name);
$mail->AddReplyTo($visitor_email,$name);

$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>

En implémentant ces modifications, l'erreur « Échec de la connexion SMTP() » devrait être résolue, permettant aux e-mails d'être envoyés avec succès via PHPMailer en utilisant l'authentification SMTP.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn