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
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>
mit:
<code class="php">$mail->Host = 'smtp.gmail.com'; $mail->Port = 587;</code>
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 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->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 Ä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!