E-Mail nicht versenden mit PHPMailer über SSL mit SMTP
Ich versuche, mit PHPMailer zum versenden von e-mails über SMTP, aber bisher kein Glück hatten. Ich habe eine Reihe von Fragen, PHPMailer tutorials und forum posts aber immer noch, kann es nicht funktionieren. Ich werde dokumentieren, wie viele meiner fehlgeschlagenen versuche ich mich erinnern kann, um Zeit zu sparen, aber Erstens, hier ist der code, den ich verwende:
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors','On');
require('includes/class.phpmailer.php');
include('includes/class.smtp.php');
$mail = new PHPMailer();
$name = $_POST["name"];
$guests = $_POST["guests"];
$time = $_POST["time"];
$message = "<h1>".$name." has booked a table for ".$guests." at ".$time."</h1>";
$mail->IsSMTP(); //telling the class to use SMTP
$mail->Host = "ssl://smtp.gmail.com"; //SMTP server
$mail->SMTPDebug = 1; //enables SMTP debug information (for testing)
$mail->SMTPAuth = true; //enable SMTP authentication
$mail->Port = 26; //set the SMTP port for the GMAIL server
$mail->Username = "[email protected]"; //SMTP account username
$mail->Password = "myPassword"; //SMTP account password
$mail->SetFrom('[email protected]', 'James Cushing');
$mail->AddReplyTo("[email protected]","James Cushing");
$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML($message)
$address = "[email protected]";
$mail->AddAddress($address, "James Cushing");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
?>
Erstens, wenn ich diesen code jetzt bekomme ich zwei verschiedene Fehler. Auf meinem lokalen server bekomme ich die Fehlermeldung:
SMTP -> FEHLER: Failed to connect to server: Operation timed out (60)
Die folgende Von-Adresse schlug fehl: [email protected] : Mail() ohne Verbindung
Mailer Error: Die folgende Von-Adresse schlug fehl: [email protected] : Mail() ohne Verbindung
Bekomme ich moreorless den gleichen Fehler, läuft der gleiche code auf meinem web server, aber die erste Zeile ist:
SMTP -> FEHLER: Failed to connect to server: Netzwerk ist nicht erreichbar (101)
Natürlich, es ist erwähnenswert,, dass ich nicht mit der buchstäblichen "[email protected]" aber ich habe ersetzt meine eigene E-Mail aus diesem post.
Dinge, die ich versucht habe
- Mit der iCloud-SMTP-server
- Verwendung eines anderen Ports
- Aktivierung der OpenSSL-Erweiterung in meinem php.ini-Datei
- Kopieren von code aus verschiedenen PHPMailer Beispiele
- Die Verwendung von Google "DisplayUnlockCaptcha" - system, um verbindungen zu aktivieren
- Senden und von verschiedenen Adressen
- Entfernen des "@gmail.com" von der Username-Eigenschaft
- Eine Reihe anderer Dinge, die ich kann mich nicht erinnern,
Diese wurde driving me mad für etwa einen Tag, so dass, wenn jemand kann es lösen, werden Sie ein held.
Dank
Das ist eines der Dinge, die ich vergaß zu erwähnen, ich habe es versucht. Es gibt mir das: SMTP -> FEHLER: EHLO nicht akzeptiert vom server: SMTP -> FEHLERMELDUNG: HELO nicht akzeptiert vom server: SMTP -> FEHLER: AUTH nicht akzeptiert vom server: SMTP -> HINWEIS: EOF gefangen, während die Kontrolle, wenn verbunden
Unterstützt Ihr Konto SMTP?
Ja, ich habe Sie laufen durch MacOS Mail als gut, und ich kann senden von e-mails von dort einfach gut
IIRC Gmail benutzt SSL, daher müssen Sie
$mail->SMTPSecure = 'tls';
oder $mail->SMTPSecure = 'ssl';
InformationsquelleAutor James Cushing | 2013-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist eine funktionierende Konfiguration.
versuchen zu ersetzen, was Sie haben
$address = "[email protected]"; $mail->AddAddress($address, "James Cushing"); $message = "Email body"; $mail->MsgHTML($message); if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; }
Aber danach funktionierte es lokal. Tests auf meinem web-server jetztOk, es läuft auf meinem web-server gibt mir immer noch SMTP -> FEHLER: Failed to connect to server: Netzwerk ist nicht erreichbar (101) Wir sind auf halbem Weg gibt obwohl!
Es ist ein anderer Fehler. Ihr SMTP-server auf Ihrem webserver ist nicht gut konfiguriert. Aber der code ist gut . Sie müssen nicht, es zu ändern!
Ich denke der Fehler ist, dass dein port '465' ist gesperrt auf Ihrem server. Sie haben, um es zu beheben.
James, ich denke, ybert, ist richtig. Öffnen Sie eine telnet-Verbindung von Ihrem server zu smtp.gmail.com auf port 465. Tut es verbinden?
InformationsquelleAutor ybert
Verwenden kein SSL auf port 465, ist es schon veraltet seit 1998 und wird nur von Microsoft-Produkten, die nicht bekommen das memo, die Verwendung von TLS auf port 587 statt: So, der code unten sollte sehr gut für Sie arbeiten.
Ihre Unterstützung sollte in der Lage sein, um Ihnen einen Spaziergang rund um.
InformationsquelleAutor Asuquo12
Erstens, verwenden Sie diese Einstellungen für Google:
Aber auch, welche firewall hast du?
Wenn Sie das filtern von TCP-ports 465/995, und vielleicht 587, müssen Sie einige Ausnahmen oder nehmen Sie aus Ihrer Liste Regeln.
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
InformationsquelleAutor jacob21
Ich habe einen ähnlichen Fehler mit SMTP-immer, wenn meine client-Maschine änderungen Netzwerk-Verbindung (z.B. home vs. office Netzwerk (office Network) und irgendwie Neustarten network-service (oder reboot) löst das Problem für mich. Nicht sicher, ob das gelten würde, um Ihren Fall, aber nur für den Fall.
InformationsquelleAutor user1533634
Erste, Google erstellt die "weniger sicheren Konten-Methode" - Funktion:
https://myaccount.google.com/security
Dann erstellt der eine andere Berechtigung:
https://accounts.google.com/b/0/DisplayUnlockCaptcha
Hoffe, es hilft.
Danke. Das denke ich auch. 🙂
InformationsquelleAutor Andre Mesquita