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

Доставка сообщений 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'

РЕДАКТИРОВАТЬ: Я ПОЛУЧИЛ! Отвечая на свой вопрос ...

Это достаточно просто сделать, если вы используете 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 делает множество вещей, чтобы убедиться, что электронная почта не потеряна или доставлена ​​небезопасно, поэтому он хорош в качестве оболочки.