php mail() не работает

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, используемыми в настоящее время).]

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

Связанный контент