Я работаю fetchmail
на сервере AntiSpam, чтобы заставить сообщения на папке спама пользователя подавать SpamAssassin байесовская фильтрация. Это работало приятно с -m
опция в fetchmail
передать сообщения к SpamAssassin sa-learn
инструмент.
Но я хотел бы начать тестировать Bogofilter и наполнять базу данных Bogofilter соответственно. Но сделать это fetchmail
должен передать сообщения к SpamAssassin и Bogofilter и использованию -m
не были никакие, идут.
Существует путь к achive это с 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, чтобы передать сообщение двум разным скриптам, а затем доставить его в SPAM. (Доставить на /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 делает кучу вещей, чтобы убедиться, что электронная почта не будет потеряна или доставлена небезопасно, так что это хорошо, как обертка.
.