Ich versuche, mit der Funktion php mail () eine E-Mail von localhost an mein Yahoo-E-Mail-Konto zu senden. Die Rückmeldung besagt, dass ich die E-Mail erfolgreich gesendet habe, aber keine E-Mail erhalten habe. Ich habe viele so genannte "einfache Methoden" zum Versenden von E-Mails gelesen und ausprobiert, aber das Ergebnis ist enttäuschend, keine davon funktioniert für mich. Unten finden Sie den Code, die Konfigurationen und die Fehlermeldung. Kann mich jemand damit aufklären? Vielen Dank.
pHP-Code
<?php
$to = '[email protected]';
$subject = 'Fake sendmail test';
$message = 'If we can read this, it means that our fake Sendmail setup works!';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers)) {
echo 'Email sent successfully!';
} else {
die('Failure: Email was not sent!');
}
?>
Konfiguration für php.ini (ich verwende einen Google Mail-Server)
SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = [email protected]
sendmail_path = "\" C:\xampp\sendmail\sendmail.exe\"-t"
Konfiguration für sendmail.ini
smtp_server = smtp.gmail.com
smtp_port = 587
smtp_ssl = tls
error_logfile = error.log
debug_logfile = debug.log
[email protected]
auth_password = mypassword
[email protected]
fehlermeldung im sendmail-Fehlerprotokoll mit Port 587
13/10/02 13:36:41: Muss zuerst einen STARTTLS-Befehl ausgeben. k4sm129639pbd.11 - gsmtp
Hier ist der Link, der mir die Antwort gibt:
[Installieren] Sie das " gefälschte sendmail für Windows ". Wenn Sie XAMPP nicht verwenden, können Sie es hier herunterladen: http://glob.com.au/sendmail/sendmail.Zip
[Modify] the php.ini file to use it (commented out the other lines): [mail function] ; For Win32 only. ; SMTP = smtp.gmail.com ; smtp_port = 25 ; For Win32 only. ; sendmail_from = <e-mail username>@gmail.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
(ignoriere das "Unix only" -Bit, da wir tatsächlich sendmail benutzen)
Anschließend müssen Sie die Datei "sendmail.ini" in dem Verzeichnis konfigurieren, in dem sendmail installiert wurde:
[sendmail] smtp_server=smtp.gmail.com smtp_port=25 error_logfile=error.log debug_logfile=debug.log auth_username=<username> auth_password=<password> force_sender=<e-mail username>@gmail.com
Um auf ein Google Mail-Konto zuzugreifen, das durch eine 2-Faktor-Überprüfung geschützt ist, müssen Sie ein anwendungsspezifisches Kennwort erstellen. ( Quelle )
kommentar in der Datei php.ini entfernen
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
und in sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=465
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=yourpassword
[email protected]
hostname=localhost
konfigurieren Sie diese .. es wird funktionieren ... es funktioniert gut für mich.
vielen Dank.
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=gmailpassword
[email protected]
sie müssen den Benutzernamen und das Passwort der Mail authentifizieren, dann kann nur einmal eine Mail von localhost erfolgreich gesendet werden
Vergessen Sie nicht, ein zweites Passwort für Ihr Google Mail-Konto zu erstellen. Sie werden dieses neue Passwort in Ihrem Code verwenden. Lesen Sie dies:
https://support.google.com/accounts/answer/1858
Klicken Sie im Abschnitt "So generieren Sie ein App-Passwort" auf "App-Passwörter", wählen Sie unter "App auswählen" die Option "Mail", wählen Sie Ihr Gerät aus und klicken Sie auf "Generieren". Ihr zweites Passwort wird auf dem Bildschirm gedruckt.
Am einfachsten ist es, PHPMailer und Gmail SMTP zu verwenden. Die Konfiguration wäre wie folgt.
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'Email Address';
$mail->Password = 'Email Account Password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
Ein Beispielskript und den vollständigen Quellcode finden Sie hier - So senden Sie eine E-Mail von Localhost in PHP