Возможный дубликат:
Как настроить php.ini с удаленным SMTP?
У нас есть приложение php, работающее в Linux, которое отправляет электронные письма этим пользователям. В настоящее время его настройки, такие как php.ini, настроены для отправки через локальный сервер sendmail, но у нас есть отдельный почтовый сервер для нашей организации для этого домена. Я хочу отправлять электронные письма приложения php через этот удаленный сервер smtp, чтобы эти электронные письма могли иметь правильные записи SPF и подписываться через DKIM.
Но я не видел такой опции в php.ini, чтобы указать адрес удаленного хоста для пересылки писем на него, только для Windows.
Я видел сообщение, в котором предлагалось phpMailer
, но я не мог найти, как это настроить, чтобы все наши приложения php могли отправлять через наш удаленный SMTP.
Я бы установил nullmailer и настройте его для пересылки писем на ваш сервер ретрансляции. Дистрибутив linux, который вы используете, скорее всего, имеет пакеты nullmailer, так что двоичный файл sendmail (совместимый с командной строкой) устанавливается в нужное место.
Если вы не хотите устанавливать nullmailer, это можно сделать с помощью sendmail тоже. Если хотите, я обновлю ответ.
ОБНОВЛЕНИЕ:
Если вы хотите сделать это в sendmail, у вас есть несколько вариантов:
(1) В sendmail.mc определите SMART_HOST как ваш почтовый сервер ретрансляции:
define(SMART_HOST, `smtp:[relay.server]')dnl
(2) Вы можете использовать FEATURE (nullclient) .
(3) Для этого измените набор правил 0. В sendmail.mc добавьте следующие строки:
LOCAL_RULE_0
R$* < @ $* . > $* $#esmtp $@ [relay.server] $: $1 < @ $2 . > $3
Не копируйте и не вставляйте приведенный выше фрагмент кода, поскольку левая часть отделена от правой табуляцией, а не пробелами.
После того, как вы закончите редактирование sendmail.mc вам нужно скомпилировать sendmail.cf и перезапустить sendmail. В Debian для этого нужно запустить sendmailconfig
. В CentOS для этого нужно запустить / etc / mail / make
, а затем перезапустить службу sendmail
.
Сначала выполните поиск, этот вопрос уже задавался ранее (например, в Как настроить php.ini с удаленным SMTP? ).
PHP mail () Функция
всегда использует sendmail (в Linux / Unix). Невозможно изменить это с помощью php.ini.
Осталось два других средства:
mail ()
с вызовами альтернативной библиотеки (например, PHPMailer). sendmail
), чтобы она действовала правильно, т.е. почтовый сервер в качестве smarthost.