Intereting Posts
Как определить, когда Windows 10 входит в планшетный режим в приложении Windows Forms? Как заменить значение параметра запроса HTTP как настроить цикл select в bash Как получить скрипт bash, работающий над FreeBSD, OpenBSD и Linux без его модификации? Python – получить имена процессов, процессор, использование Mem и использование пикового ввода в windowsх Как работают контексты OpenGL и контексты устройств? Разделить и переименовать разделенные файлы в сценарии оболочки Ошибка компиляции Winpcap MinGW Docker 32-битное изображение загружено, но сообщает о его 64-битной архитектуре более быстрая альтернатива звуковым сигналам windows.h () Рекурсивно искать файлы с определенным расширением Статический способ доступа к удаленной машине Nginx обратное преобразование в Node.js с переписыванием Исключения приводят к сбою (Qt SDK 1.2.1 – Qt4.8.1, MinGW, windows) Как защитить (или заблокировать) папку Apache Server в Windows 7

Можно ли настроить sendmail для использования аутентификации SMTP по умолчанию (для использования с PHP)?

Я поддерживаю старое PHP-приложение, и я хотел бы настроить его для использования Mandrill для исходящей электронной почты. Разумеется, Mandrill требует аутентификации SMTP. Приложение напрямую использует функцию mail() PHP.

Можно ли каким-либо образом настроить sendmail (или эквивалентную услугу) на отправку с использованием аутентификации SMTP по умолчанию (с учетными данными для Mandrill), без необходимости заменять все вызовы mail() во всем приложении?

Я видел несколько других ответов о настройке SMTP в php.ini, но это работает только в Windows, поэтому я считаю, что единственный параметр PHP, который я мог бы изменить, потенциально может быть полезным, – sendmail_path , по умолчанию – sendmail -t -i . Я думал, может быть, я мог бы указать его на сценарий оболочки, но я не уверен, как это сделать или это сработает.

ОБНОВИТЬ

Благодаря ответу @ mti2935, я смог получить эту работу. Мне не удалось заставить sSMTP работать (получил ошибку «send-mail: Can not open smtp.mandrillapp.com:587», хотя брандмауэр не блокировал его), поэтому я следил за второй ссылкой и настраивал MSMTP. Мне пришлось изменить параметр tls_trust_file на /etc/pki/tls/certs/ca-bundle.crt (примечание: я запускаю CentOS 6). Кроме того, параметр sendmail_path PHP, рекомендованный в ссылке, не работает для меня; Мне пришлось изменить его на «/ usr / bin / msmtp -C / etc / msmtp / myconfig -t» (и перезапустить Apache, поскольку я изменил это в php.ini, а не в файле .htaccess … обратите внимание, что config файл можно назвать любым, что вы хотите, выберите свое имя вместо «myconfig»).

Кроме того, при тестировании обязательно укажите адрес «От», иначе некоторые адресаты, включая Gmail, могут отклонить это сообщение.

Существует множество облегченных замен для sendmail, которые могут использоваться для ретрансляции исходящих сообщений через удаленный сервер ретрансляции SMTP, такой как SSMTP, MSMTP и Nullmailer. Заменяя / usr / sbin / sendmail с помощью одного из них, вы можете пересылать исходящую почту, отправленную из ваших PHP-скриптов через удаленный SMTP-сервер, без внесения каких-либо изменений в ваши PHP-скрипты, которые используют функцию PHP mail (). Эти замены просто передают сообщение на сервер ретрансляции – не обрабатывают входящую почту, они не управляют очередью и т. Д.

См .: http://itekblog.com/ssmtp-a-gmail-sendmail-relay-replacement-for-linux/ http://www.emanueletessore.com/how-to-configure-msmtp-as-a-gmail- relay-on-ubuntu-server / http://untroubled.org/nullmailer/

Другой вариант – продолжить использование sendmail, настроенного с помощью smarthost. См. https://serverfault.com/questions/41448/fastest-way-to-allow-sendmail-relay-through-smarthost

Swiftmailer – хороший вариант. Вы также должны взглянуть на Zend2 Mail . Я использовал это в небольшом проекте и прекрасно подходил к счету.

PHP Storm имеет довольно classную функцию поиска и замены. Если вы просто выполните поиск, скажем, «mail (» (без кавычек), вы можете вручную просмотреть результаты и подтвердить их до их замены. Или вы можете сделать замену, но до того, как она заменит каждое вхождение, вы можете ее подтвердить.