я бегу 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'
РЕДАКТИРОВАТЬ: Я ПОЛУЧИЛ! Отвечая на свой вопрос ...
Это достаточно просто сделать, если вы используете 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 делает множество вещей, чтобы убедиться, что электронная почта не потеряна или доставлена небезопасно, поэтому он хорош в качестве оболочки.