#php #debian #sendmail #exim4
#php #debian #sendmail #exim4
Вопрос:
У меня есть PHP-приложение с функцией «отправить электронное письмо». Это выглядит примерно так (скрытие личной информации):
//SEND EMAIL
$destination = $destination;
$subject = "Issue - " . {issue_number};
$body = "Mr(s). Issuer <br/><br/>
rest of the message";
$header = 'MIME=Version: 1.0' . "rn";
$header .= 'Content-type: text/html; charset=iso8859-1' . "rn";
$header .= "To: <$destination" . "rn";
$header .= 'From: Issues Central <issuescentral@myisp.com>' . "rn";
mail($destination,$subject,$body,$header);
Мой файл PHP.ini (/etc/php5/apache2/php.ini) настроен следующим образом:
Только для Unix. Вы также можете указать аргументы (по умолчанию: «sendmail -t -I»). http://php.net/sendmail-path sendmail_path = /usr/sbin/sendmail -t -I
Я искал файл конфигурации «sendmail» и вроде как обнаружил, что это псевдоним «exim4». И я немного потерялся… Должен ли я настраивать файлы exim4? Какой из них? И как я должен это настроить?
Комментарии:
1. Зависит от того, как вы хотите отправлять почту: ваш собственный полноценный сервер или подключение к существующему внешнему smtp-серверу (smarthost, а exim — это ретранслятор), используемый только для отправки электронных писем. В Debian используйте команду
dpkg-reconfigure exim4-config
изexim4-config
package для запуска конфигурации. Вам обязательно понадобится некоторое время для работы с документами…2. Я использовал команду ‘dpkg-reconfigure exim4-config’ и следовал этому простому руководству ( lars-schenk.com /… ) Несмотря на это, безуспешно. После попытки отправить электронное письмо через терминал ‘mail — «Привет, мир» frodo@myisp.com «я получил следующую ошибку: «сбой процесса отправки почты с кодом ошибки 1»
3. У меня также была такая же ошибка с командой, которую вы дали. В руководстве в конце статьи приведен пример подробной тестовой команды :
mail -v -s "This is a test" info@someotherdomain.com
. И заполните какое-нибудь мусорное сообщение Ctrl D, это может помочь. О, как только вы обновили конфигурацию иpasswd.client
файл, вам нужно запуститьupdate-exim4.conf
(да, это команда, а не файл) иinvoke-rc.d exim4 restart
. (Я не специалист по почтовым серверам, но я установил реле exim4 на какой-то debian 8 несколько месяцев назад …). Если все еще нет успеха, проверьте, какие порты принимают почту на smarthost4. ОК. Я также сделал это, используя это: mail -v -s «Это тест» info@someotherdomain.com . Теперь поговорим о «почтовой функции» php. Он вызывается в последней строке и дает следующие параметры «mail ($destination,$subject,$body,$header);» Мой файл «php.ini» теперь имеет следующее: sendmail_path = /usr/bin/mail -s, но когда я использую приложение, ничего не происходит. Кроме того, я не являюсь автором приложения…
5. Я бы сказал, оставьте sendmail_path закомментированным, пусть PHP использует значение по умолчанию. Значение по умолчанию (
sendmail -t -i
) должно быть в порядке. Кстати, sendmail должен быть в/usr/_S_bin
not/usr/bin
.