Банкомат Я использую обычный метод, чтобы перевести все сообщения в состояние УДЕРЖАНИЯ, чтобы передать их из постфикса в 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 (то есть в очереди Postfix HOLD), так как я могу сказать header_checks, чтобы это сделать? Если я оставлю / ^ Received: / проверю, даже AFB842E33A удерживается в очереди HOLD ...
Может быть, это просто глупый вопрос, но ... есть идеи?
Да есть даже выход. Это называется 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