wake-up-neo.net

Senden Sie E-Mails von localhost mit XAMPP in PHP mit dem GMAIL-Mailserver

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

21
ani

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 )

20
ani

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.

4
Rambabu
[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

0
poonam

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.

0
Vadzym

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

0
JoyGuru