Доставлять сообщения fetchmail двум различным MDA
Я бегу fetchmail
на сервере AntiSpam для получения сообщений из папки нежелательной почты пользователя для подачи байесовской фильтрации SpamAssassin. Это хорошо работает с -m
вариант в fetchmail
доставить сообщения SpamAssassin sa-learn
инструмент.
Но я бы хотел начать тестирование Bogofilter и соответственно заполнить базу данных Bogofilter. Но для этого fetchmail
следует доставлять сообщения в SpamAssassin и Bogofilter, используя -m
было не идти.
Есть способ достичь этого с fetchmail
? Я рассмотрел некоторые дополнительные MDA как procmail
или же maildrop
, но я не уверен, действительно ли это необходимо или это будет работать.
РЕДАКТИРОВАТЬ: мой факт fetchmail
Команда для получения сообщений с почтового сервера:
echo "poll $mailserver proto IMAP user $domain\\$user\\$mailbox pass $passwd ssl" \
| fetchmail -a -n -p IMAP --folder "$junkfolder" -f - -m '/usr/local/bin/sa-learn \
-C /usr/mailcleaner/etc/mailscanner/spam.assassin.prefs.conf --spam'
РЕДАКТИРОВАТЬ: Я получил это! Отвечая на мой собственный вопрос...
1 ответ
Это достаточно легко сделать, если вы используете Procmail в качестве LDA. Вот рецепт Procmail, чтобы передать сообщение двум различным сценариям, а затем доставить его в СПАМ. (Доставить /dev/null
вместо этого, если вы не хотите его хранить; или, что то же самое, удалите c
флаг из последнего рецепта.)
# I doubt this is necessary, but since you were using an explicit path name...
PATH=/usr/local/bin:$PATH
:0c
| sa-learn -C /usr/mailcleaner/etc/mailscanner/spam.assassin.prefs.conf --spam
:0c
| bogofilter
:0
SPAM/
Нетрудно написать сценарий оболочки, который выполняет те же действия, но Procmail делает кучу вещей, чтобы убедиться, что электронная почта не потеряна и не доставлена небезопасно, поэтому она хороша как обертка.