Я настроил SMTP на электронную почту, и при использовании командной строки для отправки электронных писем это работает отлично. Однако я написал этот простой код для тестирования из файла PHP, и он не работает при загрузке из браузера или при запуске php mail.php
из командной строки. Вот простой код:
<?php
if(mail("[email protected]","Testing PHP","Hope this works!"))
print "Email successful";
else
print "Failure";
?>
Когда я запускаю php mail.php
я получаю
Authorization Failed (xxxx Too Many Login Attemps, please try again later)
сообщение... которое меня смущает, потому что оно передает авторизацию при использовании функции командной строки.
Любая помощь будет принята с благодарностью!
Это зависит от вашего распределения. Например, в Debian есть отдельные конфигурации для командной строки (CLI) и webserver php (также зависит от того, как вы запускаете скрипты php cgi, fpm и т.д.).
В config /etc/php5/cli/php.ini
вам может быть интересна mail function
:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = sendmail -t -i
Убедитесь, что вы правильно настроили SMTP, вы можете протестировать его с консоли:
php -r 'mail("[email protected]","Testing php -v ".phpversion(),"php on ".gethostname());'