postfix-mta: Milter для SPF?

Можно ли использовать milter под postfix для реализации SPF?

Мне кажется, что это было бы невозможно из-за того, как postfix управляет milters.

Согласно документам postfix, milter идет сюда в цепочке обработки сообщений:

Сеть => постфиксный процесс smptd => MILTER => постфиксный процесс smtpd => и т. Д.

Учитывая, что milter получает сообщение от постфикса smtpd, milter увидит свое первоначальное соединение, исходящее с IP-адреса postfix. Это будет означать, что milter не знает IP-адреса исходного отправителя.

SPF нужен IP-адрес отправителя, поэтому кажется, что было бы невозможно выполнить надлежащую проверку SPF из постфикса milter.

Похоже, именно это и происходит, когда я устанавливаю тестовую версию на свой постфиксный сервер.

Правильно ли я по этому поводу, или кто-нибудь смог реализовать SPF через постфиксный milter?

Заранее спасибо.

2 ответа

Решение

ХОРОШО. Теперь я понимаю проблему лучше. По-видимому, используемая мильтера реализация неправильно устанавливает {client_addr}. Я предполагаю, что моя проблема связана с базовой реализацией milter, которую я использую (последняя версия pymilter).

Кроме того, я понял, что могу обойти эту проблему следующим образом: postfix помещает имя хоста и IP-адрес клиента в верхний заголовок "Received", который он устанавливает перед отправкой сообщения milter. Поэтому я могу разобрать этот первый заголовок "Received" в milter, чтобы получить адрес клиента, который мне нужен для SPF.

Sendmail/Postfix выполняет обратный вызов, предоставленный данным milter во время входящего SMTP-сеанса. Postfix может отклонить некоторые команды SMTP, основываясь на результатах обратных вызовов.

Поддержка Postfix перед очередью Milter

Postfix реализует поддержку протокола Milmail (почтовый фильтр) версии 8 Sendmail. Этот протокол используется приложениями, работающими вне MTA, для проверки событий SMTP (CONNECT, DISCONNECT), команд SMTP (HELO, MAIL FROM и т. Д.), А также содержимого почты (заголовки и тело). Все это происходит до того, как почта будет поставлена ​​в очередь.

https://en.wikipedia.org/wiki/Milter

Другие вопросы по тегам