Mailscanner & Postfix: УДЕРЖИВАЙТЕ все, кроме сообщений с пользовательским заголовком

ATM Я использую обычный метод, чтобы поместить все сообщения в состояние HOLD для передачи их из postfix в MailScanner, как описано на http://www.mailscanner.info/postfix.html:

В файле конфигурации Postfix /etc/postfix/main.cf добавьте эту строку:

header_checks = regexp:/etc/postfix/header_checks 

В файле /etc/postfix/header_checks добавьте эту строку:

/^Received:/ HOLD 

Результатом этого является указание Postfix переместить все сообщения в очередь HOLD.

Но у меня есть какое-то SMTP-сообщение, которое мне не нужно передавать через MailScanner, сообщения, идентифицируемые пользовательским заголовком. Мне нужно найти способ обойти MailScanner для этих сообщений, но я не могу его найти, учитывая, что мне нужно проверить наличие настраиваемого заголовка, а не то есть адреса From: или To:...

Попробовал изменить /etc/postfix/header_checks:

/^X-Custom-Header:/ FILTER smtp:[ip.addr.next.hop]:10025

в mail.log я вижу сообщение отфильтрованное:

Aug 19 17:52:17 servername postfix/cleanup[19423]: AFB842E33A: filter: header X-Custom-Header: from relay.sender.foo[xx.yy.zz.kk]; from=<sender@senderdomain.foo> to=<me@mydomain.foo> proto=ESMTP helo=<mail.sender.foo>: smtp:[ip.addr.next.hop]:10025

и если вышеприведенное правило является единственным правилом в header_checks, оно доставляется к следующему прыжку через smtp.

Теперь мне нужно перехватить все остальное в Mailscanner (так в очереди HOLD Postfix), так как я могу сказать header_checks сделать это? Если я оставляю /^ Получено: / проверяю, что даже AFB842E33A удерживается в очереди HOLD...

Может быть, это просто глупый вопрос, но... есть идеи?

1 ответ

Решение

Да, есть даже решение. Это называется header_checks и является частью *_restrictions, Формат (в зависимости от того, что вы хотите) описан в его собственной документации.

Но я не могу рекомендовать использовать фильтры после очереди, такие как Mailscanner и Spamassassin. Лучший способ уменьшить количество спама и сообщить об этом отправителю - это фильтры перед очередью, такие как встроенный postscreen, client_restrictions, sender_restrictions, recipient_restrictions, перед очереди очереди и внешние инструменты, такие как policyd-weight,

Только фильтры перед очередью снижают нагрузку и ресурсы на сервере и могут блокировать 80% всего спама, даже не дойдя до сервера. В частности, Mailscanner находится в моем личном "списке ненависти", так как он имеет только ограниченную интеграцию с Postfix и не может использовать встроенные интерфейсы Postfix для антиспамовых фильтров и фильтров в целом.

Изменить: Из-за отредактированного вопроса, я отвечу на это сейчас.

FILTER это не действие, которое мешает Postfix работать на header_checks-файл. Он говорит только "когда я закончу с проверками, я буду фильтровать". И поэтому следующая строка соответствует и устанавливает почту в ожидании.

Решение (даже если оно выглядит урезанным) заключается в следующем header_checks-файл:

/^X-Custom-Header:/ FILTER smtp:[ip.addr.next.hop]:10025
/^X-Custom-Header:/ OK
/^Received:/ HOLD    
Другие вопросы по тегам