私は、メールユーザーが自分のスパムトレーニングを完全に管理する方法を模索しています。それに入る前に、私のメールサーバーの詳細:
Debian 7.5、接尾辞2.9.6、dovecot 2.1.7、amavisd-new 2.7.1、spamassassin 3.3.2
したがって、各ドメインの各ユーザーには、そのようにフラグが立てられないスパムを置くことができるジャンクフォルダ(/var/vmail/domain/user/.Junk
)があります。次に、このスクリプトを配置します。
#!/bin/sh
find /var/vmail -name .Junk -exec echo Examining {}... \; -exec sa-learn --dbpath=/var/lib/amavis/.spamassassin --spam {}/cur \;
また、各ユーザーがFalse Positiveと呼んでいるフォルダーがあり、そこにメッセージをドラッグして、誤ってスパムとしてマークされている可能性があります。また、そのためのスクリプトも毎日あります。このスクリプトは、ハムとして学習し、受信トレイに戻します。
#!/bin/sh
doveadm search -A mailbox 'False Positives' 2>/dev/null | while read user guid uid; do
doveadm fetch -u $user text mailbox-guid $guid uid $uid > /tmp/$guid-$uid.eml
doveadm move -u $user INBOX mailbox-guid $guid uid $uid
done
sa-learn --dbpath=/var/lib/amavis/.spamassassin --ham /tmp/*-*.eml
if ls /tmp/*-*.eml >/dev/null 2>&1; then
rm /tmp/*-*.eml
fi
私の質問は、私はこれを正しく行っていますか?もっと良い方法はありますか? sa-learn
はamavisで正しく機能しますか? --dbpath=/var/lib/amavis/.spamassassin
オプションを使用している限り、問題なく動作するはずです。
dspam を確認することをお勧めします。それはDovecotと統合され、基本的にあなたが望むことを正確に実行しますが、移動操作が発生すると、その場で(ジャンクへの移動=>スパム、ジャンクからの移動=>誤検知)。
あなたのアプローチはうまく見えます。私は似たようなことをします。
2つの意見:
--dbpath
を使用すると、SAは~amavis
のDBを使用し、sa-learn
は~root
の別のDBに書き込むという一般的なセットアップエラーを防ぐことができます。Dspamは、スパム暗殺者よりもベイジアンフィルタリングを優れています。 RBL、グレーリスト、DNS妥当性チェックなどの他の多くのフィルタリングメカニズムは、MTA(postfixなど)から構成できます。このアプローチでは、他のテストに合格した後にのみ電子メールコンテンツを確認します。これにより、システムのリソース消費が大幅に削減されます。同じ重みの組み合わせは得られませんが、適切に設定すれば、CPUとRAMの使用量がはるかに少ない非常に優れたスパムシステムを得ることができます。また、dovecotプラグインは、フォルダー間でメールを移動することによってトリガーされます。これは、トレーニング用に別々のフォルダーを用意するよりもはるかに優れています。