问题
I upgraded my local server using XAMPP 1.8.0 which contains Apache 2.4.2, PHP 5.4.5 and MySQL 5.5.
I send mails with PHP mail() function by running MercuryMail, but no email received in my inbox.
Sending mails are working when I tested with Mozilla Thunderbird. And the mail() function seems to be working with no error issued.
I checked php.ini in my XAMPP installation path D:\xampp\php. I saw this below
[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
; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesD:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
; sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the D:\xampp\mailoutput folder
; sendmail_path = "D:\xampp\mailtodisk\mailtodisk.exe"
I tweaked some combination of SMTP settings.
I commented out host and port
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 25
I commented out sendmail_path, but it did not work. Mail could not be sent.
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"
Again, I commented out anothor sendmail_path to work with mailToDisk
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the D:\xampp\mailoutput folder
sendmail_path = "D:\xampp\mailtodisk\mailtodisk.exe"
It seems working, but no mail received in inbox. Nothing found in D:\xampp\mailoutput
In php mail log (D:\xampp\php\logs\php_mail.log), I found several log lines which likely saying mails were sending.
mail() on [D:\xampp\htdocs\....:127]: To: sithu@localhost.com -- Headers: MIME-Version: 1.0 Content-type: text/html; charset=text/html Return-Path:Sithu <stk@localhost.com> From: Sithu <stk@localhost.com> Reply-To: Sithu <stk@localhost.com>
mail() on [D:\xampp\htdocs\....:127]: To: test@localhost.com -- Headers: MIME-Version: 1.0 Content-type: text/html; charset=text/html Return-Path:admin@localhost.com From: admin@localhost.com Reply-To: admin@localhost.com
mail() on [D:\xampp\htdocs\....:127]: To: test@localhost.com -- Headers: MIME-Version: 1.0 Content-type: text/html; charset=text/html Return-Path:Members <admin@localhost.com> From: Members <admin@localhost.com> Reply-To: Members <admin@localhost.com>
I also tried to comment out sendmail_from, but no luck.
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost
Any configuration I'm still missing?
[Edit]
Mercury mail server is running.
Whenever I updated php.ini, I restarted Apache server.
回答1:
I just need to configure D:\xampp\sendmail\sendmail.ini By default, it contains the line
smtp_server=mail.mydomain.com
I had to change it to
smtp_server=localhost
No need to configure this in the older versions of XAMPP.
The correct configuration for [mail function]
in D:\xampp\php\php.ini is
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = 127.0.0.1
smtp_port = 25
; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesD:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the D:\xampp\mailoutput folder
; sendmail_path = "D:\xampp\mailtodisk\mailtodisk.exe"
Now, I'm receiving mails in my inbox. Please note that "D:\xampp\" is my XAMPP installation path.
回答2:
Make sure that mercury mail server is running, it does not run by default.
回答3:
#GMAIL mit XAMPP 1.8.1 und sendmail
[CODE]
[sendmail]
; HOTMAIL
smtp_server=smtp.gmail.com
smtp_port=25
smtp_ssl=tls
tls_certcheck off
error_logfile=error.log
debug_logfile=debug.log
auth_username= xxxx.xxxx@gmail.com
auth_password=xxxxxxx
this settings in php.ini
[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
; SMTP = smtp.gmail.com
; smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = xxxx.xxxx@gmail.com
; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
sendmail_path = "\"C:\sendmail\sendmail.exe\" -t"
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
;sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
; 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 = "C:\xampp\php\logs\php_mail.log"
来源:https://stackoverflow.com/questions/13100659/no-mail-received-in-inbox-with-xampp-1-8-0-mercurymail-and-mail