Я установил sendmail с PHP и apache на Ubuntu. Когда я пытаюсь выполнить следующую командную строку
php -r "mail('test@gmail.com', 'test', 'test')"'
он успешно отправляет электронное письмо.
Однако, запустив файл «test_send_mail.php», выполните следующие действия:
<?php mail('test@gmail.com', 'test', 'test') ?>
не отправляет электронное письмо.
Неудачная попытка с файлом .php генерирует запись журнала:
`Jul 5 21:24:47 www sendmail[25603]: p661OlL7025603: from=www-data, size=106, class=0,
nrcpts = 0, msgid = <201107060124.p661OlL7025603@www.server.com>, relay = www-data @ localhost
Успешная попытка с командной строкой генерирует запись журнала:
Jul 5 21:22:40 www sm-mta[25533]: p661MevV025533: from=<root@www.server.com>, size=352, class=0, nrcpts=1, msgid=<201107060122.p661Mecm025532@www.server.com>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Кто-нибудь знает, что может произойти? Спасибо за помощь!
PHP Имеет отдельные файлы ini
зависимости от среды:
Убедитесь, что вы внесли все необходимые изменения во все файлы, cgi обычно используется для Nginx и Lighttpd, но, конечно же, повторите все настройки во всех 3.
Также вы можете запустить phpinfo();
чтобы увидеть, какие настройки используются на самом деле.
также это может быть прямое исправление: проблема с электронной почтой PHP с www-данными
Возможно, ваша система предотвращает отправку почты apache. См. Аналогичный вопрос:
Ваша неудачная попытка отправляет электронную почту в качестве пользователя веб-сервера. Вы, вероятно, не хотите этого делать. Ключ состоит в том, чтобы передать больше параметров в mail()
чтобы переопределить эти значения по умолчанию, поскольку он передает электронное письмо вашему инжектору.
Посмотрите комментарии на странице man для mail()
и это поможет.