Назад | Перейти на главную страницу

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

я только что понял, что mail() функция не работает

Я работаю под Debian, я установил postfix, потому что друг сказал мне это (хотя я не настраивал его).

Когда я выполняю phpinfo (), я получаю:

sendmail_path   /usr/sbin/sendmail -t -i    /usr/sbin/sendmail -t -i

но в этих каталогах у меня нет ничего похожего sendmail

У вас есть идея, что мне делать, чтобы mail () работал?

Спасибо

В Unix большинство программ полагаются на MTA (агент передачи сообщений) для передачи почты. Когда программа хочет отправить сообщение, она выполняет /usr/sbin/sendmail и выдает все сообщение в стандартном вводе.

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