Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich von meinem PHPMailer den Fehler „SMTP connect() Failed“?

Warum erhalte ich von meinem PHPMailer den Fehler „SMTP connect() Failed“?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 03:11:28868Durchsuche

Why Is My PHPMailer Giving Me the

SMTP connect() fehlgeschlagen PHPMailer: Behebung des Problems in PHP

PHPMailer ist eine beliebte PHP-Bibliothek zum Senden von E-Mails über SMTP. Wenn Sie auf den Fehler „Mailer-Fehler: SMTP connect() fehlgeschlagen“ stoßen, weist dies auf ein Problem beim Herstellen einer Verbindung mit dem SMTP-Server hin.

Verstehen des Fehlers

Die Fehlermeldung „Mailer Error: SMTP connect() failed“ weist darauf hin, dass PHPMailer keine Verbindung zum angegebenen SMTP-Server herstellen konnte. Dies kann verschiedene Gründe haben, wie zum Beispiel:

  • Falsche SMTP-Einstellungen
  • Blockierte Ports
  • Serverbezogene Probleme
  • Firewall-Konfigurationen

Behebung des Problems

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Überprüfen Sie die SMTP-Einstellungen: Stellen Sie sicher, dass die SMTP-Einstellungen in Ihrem Code (Host, Port, Benutzername und Passwort) korrekt sind.
  2. Überprüfen Sie die Portblockierung: Die meisten SMTP-Server verwenden die Ports 25, 465 oder 587 für sichere Verbindungen. Überprüfen Sie, ob diese Ports auf Ihrem Server geöffnet sind.
  3. Serverprobleme untersuchen: Wenden Sie sich an Ihren SMTP-Serveranbieter, um sicherzustellen, dass es keine serverbedingten Ausfälle oder Wartungsprobleme gibt.
  4. Firewall konfigurieren: Wenn auf Ihrem Server eine Firewall konfiguriert ist, stellen Sie sicher, dass diese ausgehende Verbindungen auf den erforderlichen SMTP-Ports zulässt.

Spezifische Überlegungen für Gmail SMTP

Wenn Sie den SMTP-Server von Google mit PHPMailer verwenden, beachten Sie Folgendes:

  • Google verwendet einen neueren OAuth 2.0-Authentifizierungsmechanismus.
  • Aktivieren Sie „Weniger sichere Apps“. " in Ihren Google-Kontoeinstellungen, damit PHPMailer eine Verbindung herstellen kann.
  • Verwenden Sie TLS über Port 587 anstelle von SSL über Port 465.

Beispielcode mit Google SMTP

Hier ist eine überarbeitete Version Ihres Codes, die die notwendigen Änderungen für Gmail SMTP enthält:

<code class="php">require "class.phpmailer.php";
$mail = new PHPMailer(); 
$mail->IsSMTP();                              // send via SMTP
$mail->Host = "tls://smtp.gmail.com";
$mail->SMTPAuth = true;                       // turn on SMTP authentication
$mail->Username = "[email protected]";        // SMTP username
$mail->Password = "mypassword";               // SMTP password
$webmaster_email = "[email protected]";       //Reply to this email ID
$email="[email protected]";                // Recipients email ID
$name="My Name";                              // Recipient's name
$mail->From = $webmaster_email;
$mail->Port = 587;
$mail->FromName = "My Name";
$mail->AddAddress($email,$name);
$mail->AddReplyTo($webmaster_email,"My Name");
$mail->WordWrap = 50;                         // set word wrap
$mail->IsHTML(true);                          // send as HTML
$mail->Subject = "subject";
$mail->Body = "Hi,
This is the HTML BODY ";                      //HTML Body 
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body 

if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}
?></code>

Durch die Implementierung dieser Maßnahmen sollten Sie in der Lage sein, das Problem „SMTP connect() failed“ zu beheben " Fehler und E-Mails erfolgreich mit PHPMailer versenden.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich von meinem PHPMailer den Fehler „SMTP connect() Failed“?. 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