Назад | Перейти на главную страницу

Позвольте Postfix обрабатывать спам двумя способами

У меня есть настройка постфикса, так что почта, поступающая от smtpd, автоматически фильтруется через spamassassin (который повторно вставляет ее в очередь с добавленными заголовками)

Теперь я хочу сделать две вещи с сообщениями, которые считаются спамом:

  1. Если почта снова исходящая (из-за псевдонимов), удалите почту на месте
  2. Если сообщение предназначено для локального виртуального пользователя, передайте его Dovecot, который помещает его в папку «Спам».

Можно так настроить postfix? Все мои псевдонимы и информация о пользователе находятся в MySQL. В настоящее время я отбрасываю всю спамерскую почту (с header_checks в main.cf), но предпочел бы описанную выше ситуацию.

Вы можете настроить другой процесс прослушивания smtp в своем master.cf для обработки исходящей почты. Что-то вроде следующего должно помочь вам начать с одного прослушивания порта 26:

26        inet  n       -       n       -       18       smtpd -o header_checks=[your checks] mydestination= relayhost=

Возможно, вам придется немного подправить это, чтобы отключить локальную доставку и не принимать почту откуда угодно, кроме localhost. Затем вы захотите добавить следующее в свой main.cf

relayhost=127.0.0.1:26

И, конечно же, удалите проверки заголовков из этого файла.

Отправка почты будет ретранслироваться во второй процесс smtpd 26, который затем отбрасывает сообщения, которые не считаются спамом. Вы также можете указать ретранслятор в этом прослушивателе, если вам нужно передать свою почту нижестоящему серверу, а не доставлять ее напрямую.

Затем вы можете настроить остальную часть фильтрации для ваших локальных пользователей с помощью Dovecot, как вы уже предложили.

Вы, конечно, захотите выяснить, сколько почтовых переходов вы добавляете к своему сообщению, когда делаете это, поскольку некоторые почтовые провайдеры будут отбрасывать сообщения со значительным количеством переходов (например, gmail удаляется после чего-то вроде 10 или 15.