Я использую веб-платформу, которая должна ежедневно отправлять значительное количество электронных писем. На момент реализации я и мой партнер решили установить Postfix на сервере и использовать класс Swift Mailer для отправки электронной почты с использованием SMTP-соединения на локальный сервер Postfix.
Это позволило нам иметь несколько учетных записей электронной почты, например info@example.com
, support@example.com
, news@example.com
и иметь возможность отправлять электронные письма с правильной подписью DKIM.
У меня вопрос: нельзя ли каким-то образом настроить PHP, чтобы избежать локального SMTP-соединения (которое требует времени ресурсов сервера) и заменить его более прямым способом доставки сообщений, которые будут отправлены в очередь Postfix?
Я понял, что могу использовать PHP mail()
функция или даже Swift Mailer Swift_SendmailTransport
class и доставлять сообщения прямо в очередь Postfix. Но если да, то как мы можем обеспечить DKIM? Будет ли достаточно изменить заголовок «FROM» на учетные записи электронной почты на локальном сервере?
Спасибо.
Насколько я понимаю, я мог бы использовать функцию PHP mail () или даже класс Swift_SendmailTransport Swift Mailer и доставлять сообщения непосредственно в очередь Postfix.
Это правда
Но если да, то как мы можем обеспечить DKIM? Достаточно ли будет изменить заголовок «FROM» на учетные записи электронной почты на локальном сервере?
Вы не указываете своего подписывающего DKIM, поэтому я предполагаю, что вы используете OpenDKIM в своей настройке. OpenDKIM интегрируется с postfix с помощью milter интерфейс. Для подписи электронной почты с помощью команды mail () (без ритуала smtp) вам необходимо убедиться, что сокет / порт OpenDKIM также указан non_smptd_milters
.
Во-первых, до тех пор, пока OpenDKIM указан в non_smptd_milters, а также smptd_milters в main.cf Postfix, исходящая почта, отправляемая через PHP mail (), все равно должна быть подписана. Заголовки "Получено" по умолчанию не подписываются, и ничего больше не нужно было переписывать при очистке. Если вам нужен альтернативный метод, вы можете подписать DKIM с помощью Amavis и content_filter, хотя это означает еще больше сеансов SMTP.
Во-вторых, мне кажется маловероятным, что использование локального SMTP вместо того, чтобы отбрасывать почту в очередь maildrop, приводит к таким накладным расходам на производительность. Возможно, у вас есть ограниченное количество демонов postfix smtpd, все из которых вызывают milter, но даже без этого почта все равно должна проходить через milter OpenDKIM перед отправкой. Да, ваши PHP-скрипты завершатся раньше, но я сомневаюсь, что письмо будет доставлено быстрее. Может стоит перечитать http://www.postfix.org/QSHAPE_README.html