Я обновил свой локальный сервер с помощью XAMPP 1.8.0, который содержит Apache 2.4.2, PHP 5.4.5 и MySQL 5.5. Я отправляю письма с функцией PHP mail (), запустив MercuryMail, но не получаю письма в моем почтовом ящике.
Отправка писем работает, когда я тестировал Mozilla Thunderbird. И функция mail () работает с ошибкой.
Я проверил php.ini на моем пути установки XAMPP D: \ xampp \ php . Я видел это ниже
[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 (eg 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 (eg 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"
Я изменил некоторые настройки SMTP.
Я прокомментировал хост и порт
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury SMTP = localhost smtp_port = 25
Я прокомментировал 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"
Опять же, я прокомментировал anothor sendmail_path для работы с 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"
Кажется, что это работает, но почта не была получена в папке «Входящие». Ничего не найдено в D: \ xampp \ mailoutput
В почтовом журнале php (D: \ xampp \ php \ logs \ php_mail.log) я обнаружил несколько строк журнала, которые, вероятно, писали письма.
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>
Я также попытался прокомментировать sendmail_from , но не повезло.
; For Win32 only. ; http://php.net/sendmail-from sendmail_from = postmaster@localhost
Любая конфигурация у меня все еще отсутствует?
[Редактировать]
Почтовый сервер Mercury запущен.
Всякий раз, когда я обновлял php.ini , я перезапускал сервер Apache.
Мне просто нужно настроить D: \ xampp \ sendmail \ sendmail.ini По умолчанию он содержит строку
smtp_server=mail.mydomain.com
Мне пришлось изменить его на
smtp_server=localhost
Не нужно настраивать это в старых версиях XAMPP.
Правильная настройка для [mail function]
в D: \ xampp \ php \ php.ini
; 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 (eg 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 (eg 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"
Теперь я получаю почту в своем почтовом ящике. Обратите внимание, что «D: \ xampp» – мой путь установки XAMPP.
Убедитесь, что почтовый сервер ртути запущен, он не запускается по умолчанию.
#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 (eg 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 (eg 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"