Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich SMTP Connect()-Timeouts mit PHPMailer?

Wie behebe ich SMTP Connect()-Timeouts mit PHPMailer?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-21 17:50:03976Durchsuche

How to Resolve SMTP Connect() Timeouts with PHPMailer?

SMTP Connect()-Fehler: Fehlerbehebung bei Verbindungs-Timeouts

Beim Versuch, E-Mails mit PHPMailer zu senden, kann bei Benutzern der folgende Fehler auftreten: „SMTP -> FEHLER: Verbindung zum Server fehlgeschlagen: Zeitüberschreitung der Verbindung (110) SMTP Connect() fehlgeschlagen. Mailer-Fehler: SMTP Connect() fehlgeschlagen. Dieser Fehler ist häufig auf Verbindungsschwierigkeiten zwischen dem Server und dem PHP-Skript zurückzuführen.

Bei der Untersuchung des bereitgestellten PHP-Codes wurde festgestellt, dass die Zeile „$mail->IsSMTP();“ war anwesend. Laut der Dokumentation für PHPMailer ist diese Methode veraltet und nicht mehr erforderlich. Durch Entfernen oder Auskommentieren dieser Zeile wird das Problem mit dem Verbindungszeitlimit behoben:

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

Durch Entfernen oder Auskommentieren der Methode „IsSMTP()“ kann die Verbindung zum SMTP-Server erfolgreich hergestellt werden. Der vollständige Code unten zeigt die korrigierte PHPMailer-Konfiguration:

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

Durch die Implementierung dieser Änderungen sollte der Fehler „SMTP Connect() failed“ behoben werden, sodass E-Mails erfolgreich über PHPMailer mit SMTP-Authentifizierung gesendet werden können.

Das obige ist der detaillierte Inhalt vonWie behebe ich SMTP Connect()-Timeouts mit PHPMailer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn