Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebt man den „Mailer-Fehler: SMTP connect() fehlgeschlagen' in PHPmailer?

Wie behebt man den „Mailer-Fehler: SMTP connect() fehlgeschlagen' in PHPmailer?

Mary-Kate Olsen
Freigeben: 2024-10-27 00:03:30
Original
387 Leute haben es durchsucht

How to Fix

Fehlerbehebung bei SMTP Connect()-Fehlern in PHPmailer

Einführung

Beim Versuch, E-Mails zu senden Bei Verwendung von PHPmailer kann es zu der Fehlermeldung „Mailer-Fehler: SMTP connect() fehlgeschlagen“ kommen. Dieses Problem entsteht durch die Implementierung eines neuen Autorisierungsmechanismus namens XOAUTH2 durch Google.

Lösung

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

1. Aktivieren Sie weniger sichere Apps im Google-Konto

  • Melden Sie sich bei Ihrem Google-Konto an und navigieren Sie zu: https://www.google.com/settings/security/lesssecureapps
  • Stellen Sie sicher dass die Option „Zugriff für weniger sichere Apps aktivieren“ aktiviert ist.

2. Verwenden Sie TLS über Port 587 anstelle von SSL über Port 465

  • Ändern Sie den Code, um TLS über Port 587 anstelle von SSL über Port 465 zu verwenden. Ersetzen Sie die folgenden Zeilen:

    <code class="php">$mail->Host = "ssl://smtp.gmail.com";
    $mail->Port = 465;</code>
    Nach dem Login kopieren

    mit:

    <code class="php">$mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;</code>
    Nach dem Login kopieren

Beispielcode

Hier ist der geänderte Code:

<code class="php">require "class.phpmailer.php";
$mail = new PHPMailer(); 
$mail->IsSMTP();                              // send via SMTP
$mail->SMTPDebug = 2;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;                       // turn on SMTP authentication
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->SMTPAutoTLS = false;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->Username = "[email&#160;protected]";        // SMTP username
$mail->Password = "mypassword";               // SMTP password
$webmaster_email = "[email&#160;protected]";       //Reply to this email ID
$email="[email&#160;protected]";                // Recipients email ID
$name="My Name";                              // Recipient's name
$mail->From = $webmaster_email;
$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>
Nach dem Login kopieren

Durch die Implementierung dieser Änderungen sollten Sie in der Lage sein, E-Mails erfolgreich mit PHPmailer zu versenden.

Das obige ist der detaillierte Inhalt vonWie behebt man den „Mailer-Fehler: SMTP connect() fehlgeschlagen' in PHPmailer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage