Я запускаю сервер на своей машине, но я не могу отправлять электронные письма с помощью функции mail()
php. Сервер Mercury также работает в фоновом режиме.
Это конфигурация моего файла php.ini
[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 = webname@localhost.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
И это 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=localhost ; smtp port (normally 25) smtp_port=25 ; 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=local ; 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=webname auth_password=webnamemail ; if your smtp server uses pop3 before smtp authentication, modify the ; following three lines ;pop3_server= ;pop3_username= ;pop3_password= ; to force the sender to always be the following email address, uncomment and ; populate with a valid email address. this will only affect the "MAIL FROM" ; command, it won't modify the "From: " header of the message content ;force_sender=me@localhost ; 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=localhost ; 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"
Я что-то упускаю?
Функция Edit: mail()
ничего не возвращает.
попробуйте использовать «пост-сервер». Это сработало для меня.
Вам потребуется дополнительное приложение SMTP Server, потому что Xampp не поддерживает его. Загрузите версию «Post Cast Server»> 2. Откройте инструменты -> Настройки -> Система -> SMTP-сервер и установите имя хоста в качестве порта сервера localhost как 25. И запустите приложение с минимальным значением. Это определенно будет работать, потому что это сработало для меня, когда я столкнулся с одной и той же проблемой. Затем выберите почту и нажмите кнопку «Пуск», которая отправит вашу почту.