E-Mail kann nicht über den Gmail-SMTP-Server über PHPMailer gesendet werden, Fehlermeldung: SMTP AUTH ist für die Nachrichtenübermittlung auf Port 587 erforderlich. Wie behebt man das Problem?

Lesezeit: 8 Minuten

E Mail kann nicht uber den Gmail SMTP Server uber PHPMailer gesendet werden
Mohammed Masudian

Ich möchte eine E-Mail mit senden Gmail-SMTP Server durch PHP-Mailer.

das ist mein Code

<?php
require_once('class.phpmailer.php');

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet="UTF-8";
$mail->SMTPSecure="tls";
$mail->Host="smtp.gmail.com";
$mail->Port = 587;
$mail->Username="MyUsername@gmail.com";
$mail->Password = 'valid password';
$mail->SMTPAuth = true;

$mail->From = 'MyUsername@gmail.com';
$mail->FromName="Mohammad Masoudian";
$mail->AddAddress('anotherValidGmail@gmail.com');
$mail->AddReplyTo('phoenixd110@gmail.com', 'Information');

$mail->IsHTML(true);
$mail->Subject    = "PHPMailer Test Subject via Sendmail, basic";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";
$mail->Body    = "Hello";

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

aber ich erhalte diesen folgenden Fehler

Mailer Error: SMTP Error: The following recipients failed: anotherValidGmail@gmail.com

SMTP server error: SMTP AUTH is required for message submission on port 587

Meine Domäne ist vatandesign.ir

  • Vielleicht möchten Sie sich Jorjs Antwort in diesem Thread ansehen: stackoverflow.com/questions/5759419/…

    – Menschlicher Möchtegern

    17. Mai 2013 um 9:22 Uhr

1646961848 664 E Mail kann nicht uber den Gmail SMTP Server uber PHPMailer gesendet werden
Andrew Caulfield

$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@gmail.com";
$mail->Password = "password";
$mail->SetFrom("example@gmail.com");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("email@gmail.com");

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

Dieser obige Code wurde getestet und hat für mich funktioniert.

Es könnte sein, dass Sie es brauchten $mail->SMTPSecure="ssl";

Stellen Sie außerdem sicher, dass Sie für dieses Konto keine Bestätigung in zwei Schritten aktiviert haben, da dies ebenfalls zu Problemen führen kann.

AKTUALISIERT

Sie könnten versuchen, $mail->SMTP zu ändern:

$mail->SMTPSecure="tls";

Beachten Sie, dass einige SMTP-Server Verbindungen blockieren. Einige SMTP-Server werden nicht unterstützt SSL (oder TLS) Verbindungen.

  • Ich erhalte diesen Fehler, wenn ich Ihren Code verwende. Mailer-Fehler: Die folgende Absenderadresse ist fehlgeschlagen: phoenixd110@gmail.com: Called Mail() ohne verbunden zu sein

    – Mohammad Masudian

    16. April 2013 um 22:55 Uhr


  • Aktualisierte Antwort mit einem weiteren Vorschlag. Der Code ist auf jeden Fall in Ordnung. Sie könnten diese beiden Quellen überprüfen phpmailer.worxware.com/index.php?pg=exampleagmail und github.com/Synchro/PHPMailer/blob/master/examples/…

    – Andrew Caulfield

    16. April 2013 um 23:03 Uhr

  • Ich erhalte den Fehler als: CLIENT -> SMTP: EHLO localhost SMTP -> ERROR: EHLO nicht vom Server akzeptiert: CLIENT -> SMTP: HELO localhost Notice: fwrite(): send of 16 bytes failed with errno=10054 Eine bestehende Verbindung wurde vom Remote-Host zwangsweise geschlossen. in C:\xampp\htdocs\program\mailsending1\mailsending_v1\PHPMailer-master\class.smtp.php on line 1023 SMTP -> FEHLER: HELO nicht akzeptiert vom Server: SMTP -> NOTICE: EOF beim prüfen ob verbundenSMTP Connect( ) gescheitert. Mailer-Fehler: SMTP Connect() fehlgeschlagen.

    – Anurag Singh

    12. August 2013 um 7:09 Uhr


  • Beachten Sie, dass, wenn Sie „ssl“ angeben (was wärmstens empfohlen wird), Ihre PHP-Installation die „openssl“-Erweiterung geladen (oder einkompiliert) haben muss, indem Sie Ihren bevorzugten PHP-Erweiterungsmechanismus verwenden (ich verwende zufällig OS X Macports, für die es ist sudo port install php5-openssl)

    – xgretsch

    17. März 2014 um 15:44 Uhr

  • Es ist besser, sowohl den Rückgabewert als auch die Fehler zu überprüfen if(!$mail->Send() || $mail->ErrorInfo) {

    – ymakux

    21. Januar 2016 um 15:25 Uhr

Also habe ich gerade meinen eigenen Fehler “SMTP-Verbindungsfehler” gelöst und wollte die Lösung posten, nur für den Fall, dass sie jemand anderem hilft.

Ich habe den EXAKTEN Code verwendet, der in der PHPMailer-Beispieldatei gmail.phps angegeben ist. Es funktionierte einfach, während ich MAMP verwendete, und dann bekam ich den SMTP-Verbindungsfehler, nachdem ich es auf meinen persönlichen Server verschoben hatte.

Alle Stack Overflow-Antworten, die ich gelesen habe, und die gesamte Fehlerbehebungsdokumentation von PHPMailer besagten, dass es kein Problem mit PHPMailer gab. Dass es ein Einstellungsproblem auf der Serverseite war. Ich habe verschiedene Ports (587, 465, 25) ausprobiert, ich habe ‘SSL’- und ‘TLS’-Verschlüsselung ausprobiert. Ich habe überprüft, ob openssl in meiner php.ini-Datei aktiviert ist. Ich habe überprüft, dass es kein Firewall-Problem gibt. Alles ausgecheckt und immer noch nichts.

Die Lösung war, dass ich diese Zeile entfernen musste:

$mail->isSMTP();

Jetzt funktioniert alles. Ich weiß nicht warum, aber es funktioniert. Der Rest meines Codes wird aus der PHPMailer-Beispieldatei kopiert und eingefügt.

  • Diese Lösung funktioniert, weil sie SMTP vollständig deaktiviert. Ich empfehle diese Methode NICHT. Ich habe dieses Problem nie gelöst, ich wechsle jetzt stattdessen zur Verwendung der Mandrill-API.

    – Evan Butler

    23. Juli 2015 um 22:15 Uhr


  • Verwenden Sie einfach Mandrill, es ist viel besser und hat tatsächlich einige Analysen.

    – Evan Butler

    10. Oktober 2015 um 6:50 Uhr

  • Mein Problem gelöst. Ich danke dir sehr.

    – Cristian Oana

    29. November 2016 um 13:26 Uhr

  • Bei mir hat es auch funktioniert. Seltsam, diese Bibliothek ist ziemlich ausgereift

    – ymakux

    30. April 2017 um 19:45 Uhr


  • SCHLECHTE Lösung, Sie verwenden nicht so smtp, sondern die bloße PHP-Funktion mail (), die Ihre E-Mail wahrscheinlich für einige Empfänger als Junk sendet

    – Nassim

    15. Juni 2017 um 6:32 Uhr

Beachten Sie auch, dass Sie, wenn Sie die Zwei-Faktor-Authentifizierung aktiviert haben, ein anwendungsspezifisches Passwort einrichten müssen, das anstelle des Passworts Ihres E-Mail-Kontos verwendet wird.

Sie können ein anwendungsspezifisches Passwort generieren, indem Sie diesen Anweisungen folgen:
https://support.google.com/accounts/answer/185833

Dann einstellen $mail->Password zu Ihrem anwendungsspezifischen Passwort.

Anscheinend kann Ihr Server keine Verbindung zum Gmail-SMTP-Server herstellen. Hier sind einige Hinweise zur Fehlerbehebung: 1) Überprüfen Sie, ob SSL in Ihrem PHP korrekt konfiguriert ist (Module, die damit umgehen, sind nicht standardmäßig in PHP installiert. Sie müssen Ihre Konfiguration in phph.ini überprüfen). 2) Überprüfen Sie, ob Ihre Firewall ausgehende Anrufe an den erforderlichen Port (hier 465 oder 587) zulässt. Verwenden Sie dazu Telnet. Wenn der Port nicht geöffnet ist, benötigen Sie Unterstützung von sysdmin, um die Konfiguration einzurichten. Ich hoffe du klärst das schnell!

Öffne das Verknüpfung und wählen Sie den Anweisungen folgen. Google-Server blockieren alle Versuche von unbekannten Servern. Wenn Sie also auf Captcha Check klicken, ist alles in Ordnung

  • Ich habe denselben Code wie in der akzeptierten Antwort verwendet, würde aber trotzdem SMTP_connect()-Fehler erhalten. Ich habe alles in diesem Link ausprobiert und es hat funktioniert, also +1.

    – Iwan

    30. Dezember 2013 um 16:22 Uhr

  • Ich hatte auch Probleme mit SMTP_connect() Fehlern. Ich habe die obigen Schritte befolgt und bekomme immer noch den Fehler. Ich habe die Schritte zweimal befolgt, auf 2 verschiedenen Google Mail-Adressen, und beide Male scheint es, dass ich ~ 1 Stunde warten musste, bis die Änderungen zu wirken schienen. Danach funktionierte alles wie erwartet.

    – kwal

    20. Januar 2015 um 21:20 Uhr

  • Besuch google.com/accounts/DisplayUnlockCaptcha und dann das Ausführen meines Codes hat es für mich zum Laufen gebracht. +1

    – Bill Brower

    19. April 2017 um 22:52 Uhr

  • Mein Problem wurde gelöst.

    – Nikhil Pawar

    2. Oktober 2020 um 20:48 Uhr

E Mail kann nicht uber den Gmail SMTP Server uber PHPMailer gesendet werden
Login vergessen 12

Google behandelt Google Mail-Konten je nach verfügbaren Benutzerinformationen unterschiedlich, wahrscheinlich um Spammer einzudämmen.

Ich konnte SMTP nicht verwenden, bis ich die telefonische Verifizierung durchgeführt hatte. Ich habe ein anderes Konto zur doppelten Überprüfung erstellt und ich konnte es bestätigen.

  • Ich habe denselben Code wie in der akzeptierten Antwort verwendet, würde aber trotzdem SMTP_connect()-Fehler erhalten. Ich habe alles in diesem Link ausprobiert und es hat funktioniert, also +1.

    – Iwan

    30. Dezember 2013 um 16:22 Uhr

  • Ich hatte auch Probleme mit SMTP_connect() Fehlern. Ich habe die obigen Schritte befolgt und bekomme immer noch den Fehler. Ich habe die Schritte zweimal befolgt, auf 2 verschiedenen Google Mail-Adressen, und beide Male scheint es, dass ich ~ 1 Stunde warten musste, bis die Änderungen zu wirken schienen. Danach funktionierte alles wie erwartet.

    – kwal

    20. Januar 2015 um 21:20 Uhr

  • Besuch google.com/accounts/DisplayUnlockCaptcha und dann das Ausführen meines Codes hat es für mich zum Laufen gebracht. +1

    – Bill Brower

    19. April 2017 um 22:52 Uhr

  • Mein Problem wurde gelöst.

    – Nikhil Pawar

    2. Oktober 2020 um 20:48 Uhr

Dieser Code funktioniert gut für mich

    $mail = new PHPMailer;
    //Enable SMTP debugging. 
    $mail->SMTPDebug = 0;
    //Set PHPMailer to use SMTP.
    $mail->isSMTP();
    //Set SMTP host name                          
    $mail->Host = $hostname;
    //Set this to true if SMTP host requires authentication to send email
    $mail->SMTPAuth = true;
    //Provide username and password     
    $mail->Username = $sender;
    $mail->Password = $mail_password;
    //If SMTP requires TLS encryption then set it
    $mail->SMTPSecure = "ssl";
    //Set TCP port to connect to 
    $mail->Port = 465;
    $mail->From = $sender;  
    $mail->FromName = $sender_name;
    $mail->addAddress($to);
    $mail->isHTML(true);
    $mail->Subject = $Subject;
    $mail->Body = $Body;
    $mail->AltBody = "This is the plain text version of the email content";
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    }
    else {
           echo 'Mail Sent Successfully';
    }

  • $mail->SMTPSecure = ‘ssl’; $mail->Port = 465; Ich habe gerade TSL in SSL und 587 in 465 geändert, dann hat es für mich funktioniert, danke. GMAIL, um weniger sichere Apps zuzulassen: myaccount.google.com/lesssecureapps

    – Kodali444

    26. November 2019 um 6:00 Uhr


989500cookie-checkE-Mail kann nicht über den Gmail-SMTP-Server über PHPMailer gesendet werden, Fehlermeldung: SMTP AUTH ist für die Nachrichtenübermittlung auf Port 587 erforderlich. Wie behebt man das Problem?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy