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. xampp/php/php.ini Einstellungen (entkommentieren):

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

; 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.

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

account Hotmail
 tls on
 tls_certcheck off
 host smtp.live.com
 port 25
 from %MINIFYHTMLf10b07811cca57c6913a8612a9116fdc9%
 auth on
 user %MINIFYHTMLf10b07811cca57c6913a8612a9116fdc10%
 password myPassword

account default : Hotmail

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 25: Permission denied'

Kann über den Port keine  Mail versendet werden, es kann durch einen Alternativen Port, wie der übliche Port 587 umgangen werden:

account Hotmail
 tls on
 tls_certcheck off
 host smtp.live.com
 port 587
 from%MINIFYHTMLf10b07811cca57c6913a8612a9116fdc11%
 auth on
 user%MINIFYHTMLf10b07811cca57c6913a8612a9116fdc12%
 password myPassword

Hinterlasse eine Antwort

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  1. Hallo Herr Viereck,
    möchte Mails über sendmail verschicken, bin nach der Anleitung vorgegangen,
    aber irgendwo ist ein Fehler.
    Können Sie mir helfen?
    Besten Dank im voraus
    Gruss André

    php.ini
    [mail function]
    ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
    SMTP = localhost
    smtp_port = 25

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

    Sendmail.ini
    ; configuration for fake sendmail

    ; if this file doesn’t exist, sendmail.exe will look for the settings in
    ; the registry, under HKLM\Software\Sendmail

    [sendmail]

    ; you must change mail.mydomain.com to your smtp server,
    ; or to IIS’s “pickup” directory. (generally C:\Inetpub\mailroot\Pickup)
    ; emails delivered via IIS’s pickup directory cause sendmail to
    ; run quicker, but you won’t get error messages back to the calling
    ; application.

    smtp_server=smtp.1und1.de

    ; smtp port (normally 25)

    smtp_port=587

    ; SMTPS (SSL) support
    auto = use SSL for port 465, otherwise try to use TLS
    ; ssl = alway use SSL
    ; tls = always use TLS
    ; none = never try to use SSL

    smtp_ssl=auto

    ; the default domain for this server will be read from the registry
    ; this will be appended to email addresses when one isn’t provided
    ; if you want to override the value in the registry, uncomment and modify

    ;default_domain=mydomain.com

    ; log smtp errors to error.log (defaults to same directory as sendmail.exe)
    ; uncomment to enable logging

    error_logfile=error.log

    ; create debug log as debug.log (defaults to same directory as sendmail.exe)
    ; uncomment to enable debugging

    ;debug_logfile=debug.log

    ; if your smtp server requires authentication, modify the following two lines

    auth_username=test@andres-webdesign.de
    auth_password=XXXXXXXXXXXX

    ; if your smtp server uses pop3 before smtp authentication, modify the
    ; following three lines. do not enable unless it is required.

    pop3_server=
    pop3_username=
    pop3_password=

    ; force the sender to always be the following email address
    ; this will only affect the “MAIL FROM” command, it won’t modify
    ; the “From: ” header of the message content

    force_sender=

    ; force the sender to always be the following email address
    ; this will only affect the “RCTP TO” command, it won’t modify
    ; the “To: ” header of the message content

    force_recipient=

    ; sendmail will use your hostname and your default_domain in the ehlo/helo
    ; smtp greeting. you can manually set the ehlo/helo name if required

    hostname=1und1