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 используется из командной строки.)