AntiSpamサーバーでfetchmail
を実行して、ユーザーのジャンクフォルダーでメッセージを取得し、SpamAssassinベイジアンフィルタリングをフィードしています。 fetchmail
の-m
オプションを使用して正常に実行され、SpamAssassin sa-learn
ツールにメッセージを配信しています。
しかし、Bogofilterのテストを開始し、それに応じてBogofilterデータベースにフィードしたいと思います。しかし、これを行うには、fetchmail
がSpamAssassinとBogofilterにメッセージを配信する必要があり、-m
を使用することはできませんでした。
fetchmail
でこれを達成する方法はありますか? procmail
やmaildrop
のような追加のMDAを検討しましたが、それが本当に必要かどうか、またはそれが機能するかどうかはわかりません。
編集:メールサーバーからメッセージをフェッチするための実際の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として使用する場合に簡単に実行できます。これは、メッセージを2つの異なるスクリプトに渡し、それをSPAMに配信するための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は、電子メールが失われたり、安全でない状態で配信されたりしないようにするためにさまざまなことを行います。そのため、ラッパーとしては便利です。