Probleme beim Senden von E-Mails über den Gmail-SMTP-Server mit PHP-Mailer: Fehler „SMTP AUTH ist erforderlich“
Beim Versuch, eine E-Mail über den zu senden Wenn Sie einen Gmail-SMTP-Server verwenden, der PHP Mailer verwendet, wird möglicherweise eine Fehlermeldung angezeigt, die darauf hinweist, dass für die Nachrichtenübermittlung an Port 587 eine SMTP-Authentifizierung erforderlich ist. Dieses Problem kann behoben werden indem Sie die folgenden Schritte implementieren:
- SMTP-Authentifizierung überprüfen:
Stellen Sie sicher, dass das SMTPAuth-Flag im PHP-Mailer-Code auf „true“ gesetzt ist. Dies ermöglicht eine Authentifizierung vor dem Senden der E-Mail.
- Domänenbeschränkung prüfen:
Gmail erfordert eine Domänenbeschränkung, um bestimmten Domänen das Senden von E-Mails über seinen SMTP-Server zu ermöglichen. Stellen Sie sicher, dass Ihre Domain (vatandesign.ir) berechtigt ist, E-Mails über das von Ihnen verwendete Gmail-Konto zu senden.
- SMTP Secure Flag aktualisieren:
Setzen Sie das $mail->SMTPSecure Flag auf „ssl“ oder „tls“, um eine sichere Verbindung mit dem Gmail-SMTP-Server herzustellen.
- SSL-Verfügbarkeit prüfen:
Bestätigen Sie, dass das SMTP Der Server, zu dem Sie eine Verbindung herstellen möchten, unterstützt SSL-Verbindungen. Einige Server unterstützen SSL oder TLS möglicherweise nicht.
- Zweistufige Verifizierung deaktivieren:
Zur Erhöhung der Sicherheit hat Google die zweistufige Verifizierung implementiert. Deaktivieren Sie die zweistufige Überprüfung für das Gmail-Konto, das Sie zum Senden der E-Mail verwenden.
- SMTP-Debug-Wert ändern:
Setzen Sie das $mail->SMTPDebug-Flag auf 1 oder 2. Dadurch wird das Debuggen aktiviert und Geben Sie detaillierte Fehlermeldungen an.
- Test und Fehlerbehebung:
Führen Sie den PHP-Mailer-Code aus und überwachen Sie die Ausgabe. Überprüfen Sie die Fehlermeldungen auf etwaige Probleme oder Warnungen.
- Portkonfiguration aktualisieren:
Experimentieren Sie, indem Sie den $mail->Port-Wert entweder auf 465 oder 587 ändern. Verschiedene Server können unterschiedliche Ports verwenden. - Kontaktieren Sie Ihren SMTP-Server:
Wenn das Problem weiterhin besteht, können Sie sich für weitere Informationen an den SMTP-Serveranbieter wenden Hilfe.
Beispielarbeitscode:
Dieser überarbeitete Beispielcode kann Ihnen bei der Lösung des Problems helfen:
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SetFrom("[email protected]");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("[email protected]");
if (!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
Nach dem Login kopieren
Dieser Code hat getestet und auf Funktionsfähigkeit überprüft. Durch die Umsetzung dieser Vorschläge sollten Sie in der Lage sein, E-Mails mit PHP Mailer erfolgreich über den Gmail-SMTP-Server zu senden.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „SMTP AUTH ist erforderlich', wenn ich E-Mails über den SMTP-Server von Gmail mit PHP Mailer sende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!