Как использовать Sendmail в PHP-приложении с использованием Debian

#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 несколько месяцев назад …). Если все еще нет успеха, проверьте, какие порты принимают почту на smarthost

4. ОК. Я также сделал это, используя это: 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 .