PHP отправка почты работает в командной строке, но не в PHP-файле

1

Я настроил 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)

сообщение... которое меня смущает, потому что оно передает авторизацию при использовании функции командной строки.

Любая помощь будет принята с благодарностью!

  • 0
    Вы говорите что-то странное: как вы можете получить сообщение «Ошибка авторизации», когда функция почты нигде не регистрируется? Пожалуйста, удалите любой другой код из файла и запустите функцию чистой почты.
  • 0
    Я только имел в виду, что при запуске вышеуказанного файла в браузере с использованием apache я получаю сообщение «Сбой», как описано в приведенном выше коде, поэтому я решил попробовать запустить строку кода «php mail.php» (имя мой php файл) в надежде получить какое-то полезное сообщение об ошибке. В результате появилось сообщение об ошибке проверки подлинности, которое появилось прямо в командной строке. Спасибо за ответ!
Показать ещё 2 комментария
Теги:
amazon-ec2
smtp
sendmail

1 ответ

0

Это зависит от вашего распределения. Например, в 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());'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню