Электронная почта PHP, Postfix и очередь сообщений

Электронная почта PHP, Postfix и очередь сообщений

Я управлял веб-платформой, которая должна отправлять значительное количество писем ежедневно. На момент внедрения мы с партнером решили настроить Postfix на сервере и использовать класс Swift Mailer для отправки писем с использованием SMTP-подключения к локальному серверу Postfix.

Это позволило нам иметь несколько учетных записей электронной почты, например [email protected], , [email protected], [email protected]и отправлять с них электронные письма, правильно подписанные с помощью DKIM.

Мой вопрос в том, нельзя ли настроить PHP таким образом, чтобы избежать локального SMTP-подключения (которое отнимает время и ресурсы сервера) и заменить его более прямым способом доставки сообщений, отправляемых в очередь Postfix?

Насколько я понимаю, я мог бы использовать функцию PHP mail()или даже класс Swift Mailer Swift_SendmailTransportи доставлять сообщения напрямую в очередь Postfix. Но если так, как мы можем гарантировать DKIM? Достаточно ли будет изменить заголовок "FROM" на учетные записи электронной почты на локальном сервере?

Спасибо.

решение1

Насколько я понимаю, я мог бы использовать функцию PHP mail() или даже класс Swift_SendmailTransport из Swift Mailer и доставлять сообщения непосредственно в очередь Postfix.

Это правда

Но если так, как мы можем гарантировать DKIM? Достаточно ли будет изменить заголовок "FROM" на учетные записи электронной почты на локальном сервере?

Вы не указали своего подписчика DKIM, поэтому я предполагаю, что вы используете OpenDKIM в своей настройке. Интеграция OpenDKIM с postfix осуществляетсяинтерфейс milter. Для подписи электронной почты с помощью команды mail() (без ритуала smtp) необходимо убедиться, что сокет/порт OpenDKIM также указан non_smptd_milters.

решение2

Во-первых, пока OpenDKIM указан в non_smptd_milters, а также smptd_milters в main.cf Postfix, исходящая почта, отправленная через PHP mail(), все равно должна быть подписана. Заголовки Received не подписаны по умолчанию, и больше ничего не должно было быть переписано очисткой. Если вам нужен альтернативный метод, вы можете подписать DKIM с помощью Amavis и content_filter, хотя это означает еще больше сеансов SMTP.

Во-вторых, мне кажется маловероятным, что использование локального SMTP вместо сброса почты в очередь maildrop так снижает производительность. Возможно, у вас ограниченное количество демонов postfix smtpd, каждый из которых вызывает milter, но даже без этого почта все равно должна пройти через milter OpenDKIM перед отправкой. Да, ваши PHP-скрипты завершатся раньше, но я сомневаюсь, что письмо будет доставлено быстрее. Возможно, стоит перечитатьhttp://www.postfix.org/QSHAPE_README.html

Связанный контент