php mail() не работает
Я просто понял, что mail()
функция не работает
я нахожусь под Debian, я установил postfix, потому что друг сказал мне (хотя я не настраивал это).
Когда я делаю phpinfo() у меня есть:
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
но в этих каталогах у меня нет ничего подобного sendmail
У вас есть идея, что я должен сделать, чтобы заставить mail() работать?
Спасибо
1 ответ
В Unix большинство программ используют MTA (агент передачи сообщений) для передачи почты. Когда программа хочет отправить сообщение, она выполняет /usr/sbin/sendmail
и дает ему все сообщение в stdin.
Sendmail MTA был первым, кто работал таким образом (и продолжает работать), и другие MTA придерживаются того же соглашения о предоставлении /usr/sbin/sendmail
программа.
[В этом ответе Sendmail является оригинальным MTA, и sendmail
(строчные) /usr/sbin/sendmail
(который поставляется со всеми MTA, используемыми в настоящее время).]
РНР mail()
следует традиции Unix и просто передает сообщение sendmail
исполняемый файл. Что означает, что вам нужен MTA. Вы уже установили Postfix, что хорошо. Тем не менее, у него есть sendmail
бинарный, так что если у вас его нет в /usr/sbin/
тогда вы должны были установить его в другом месте - возможно, /usr/local/sbin/
если скомпилировано из источника?
Переустановка Postfix может решить проблему. Если это не так, пожалуйста, обновите ваш вопрос, указав детали, например, как вы установили Postfix.
Если твой sendmail
где-то еще, чем /usr/sbin/
, тогда вам придется редактировать конфигурацию PHP - php.ini
, Обычно это в /etc/php5/
и Debian имеет три из них. (cgi/
для общего CGI/FCGI, apache2/
для модуля Apache PHP, cli/
для того, когда PHP используется из командной строки.)