У меня есть настройка постфикса, так что почта, поступающая от smtpd, автоматически фильтруется через spamassassin (который повторно вставляет ее в очередь с добавленными заголовками)
Теперь я хочу сделать две вещи с сообщениями, которые считаются спамом:
Можно так настроить 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.