XAMPP mails send from localhost using sendmail


In the local development on Windows with XAMPP, you must can send naturally also mails and conduct tests.

Without a configuration of sendmail do you get following error on Windows:

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

With the following settings, it is possible to send SMTP mail z.B locally. using PHPMailer or WordPress wp_mail().

The following steps are necessary for this to about sendmail to send mails, What is included in XAMPP:

1. XAMPP/PHP/PHP.ini settings (Uncomment):

[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 %MINIFYHTML1ff241bfa433a2ae7093b2ed12cbc8f19%
 auth on
 user %MINIFYHTML1ff241bfa433a2ae7093b2ed12cbc8f110%
 password myPassword

account default : Hotmail

Then the Apache must be restarted and now can with PHP mail()-Command messages sent is XAMPP on Windows..

Possible bug in the Sendmail error log: sendmail.log

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

Can no mail be sent via the port, It is possible through an alternate port, as the usual port 587 be bypassed:

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

Leave a Reply

You may use these HTML tags and attributes: <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
    Grus 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 HKLMSoftwareSendmail

    [sendmail]

    ; you must change mail.mydomain.com to your smtp server,
    ; or to IIS's “pickup” directory. (generally C:\Inetpubmailrootpickup)
    ; 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
    ; sl = always 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 = X

    ; 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