Kategorien
Server Administration Webdeveloper Tools

Xampp Mails verschicken von localhost mit sendmail

Bei der lokalen Entwicklung unter Windows mit Xampp muss man natürlich auch Mails verschicken können und Tests durchführen.

Ohne eine Konfiguration von sendmail bekommt man unter Windows folgende Fehlermeldung:

mail() [<a href='http://www.php.net/function.mail'>function.mail</a>]: "sendmail_from" not set in php.ini or custom "From:"

Mit den folgeden Einstellungen ist es möglich SMTP Mails lokal zu versenden z.B. mit PHPMailer oder mit WordPress wp_mail().

Folgende Schritte sind nötig dafür um über Sendmail Mails zu verschicken, welches in Xampp mitgeliefert wird:

1. In der xampp/sendmail/sendmail.ini muss ein gültiges E-Mail Konto angegeben werden, über welches E-Mails versendet werden sollen:

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password

2. xampp/php/php.ini Einstellungen (entkommentieren):

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 587

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"\xampp\sendmail\sendmail.exe\" -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
mail.log = "\xampp\apache\logs\php_mail.log"

Damit wird aktiviert, dass ein Fehler Log geschrieben wird.

Danach muss der Apache neu gestartet werden und nun können mit dem PHP mail()-Befehl E-Mails verschickt werden von Xampp unter Windows..

Mögliche Fehler aus dem Sendmail Error Log: sendmail.log

errormsg='cannot connect to localhost, port foo: Permission denied'

Kann über den Port keine  Mail versendet werden, es kann durch einen Alternativen Port gesendet werden, wie z.B. bei einem Hotmail Account

[sendmail]
smtp_server=smtp.live.com
smtp_port=25
smtp_ssl=tls
tls_certcheck off
error_logfile=error.log 
debug_logfile=debug.log 
auth_username=foo@hotmail.com 
auth_password=my-hotmail-password