QMAIL3には学習型のスパムフィルタが実装されています。初期状態ではすべてのメールをスパムでないメール(クリーン)と判断しますが、スパムをスパムフォルダに移動することによってスパムフィルタを学習させることができます。ある程度学習すると、スパムを自動的にスパムフォルダに移動するようになります。
スパムフィルタはアカウントごとに有効・無効を切り替えることができます。デフォルトでは無効になっていますので、有効にするにはアカウントの設定の[高度]タブで[スパムフィルタを有効にする]にチェックを入れてください。
スパムフィルタが使用できるのは、受信プロトコルとしてPOP3, IMAP4, NNTPを使用している各アカウントのみになります。
初期状態のスパムフィルタは何も学習していないので、すべてのメールをクリーンと判断します。スパムを受信したらそのメールをスパムフォルダに移動します。そうすると、そのメールの内容をスパムとして学習します。
クリーンなメールを学習する必要があることにも注意してください。デフォルトの設定では受信したときにクリーンと判断されたメールはクリーンなメールとして学習されます。
強制的にクリーンなメールやスパムを学習させるには以下のようにします。
PDFなどを添付した上でその中にスパムの文言が記述されているスパムに対応するために、添付ファイルの中身をスキャンすることができます。添付ファイルをスキャンするためには、まず添付ファイルからテキストを取り出すために、xdoc2txtをインストールする必要があります。リンク先のページからxdoc2txtの最新版と、同じページにあるcryptlib.dllの最新版をダウンロードし、適当なディレクトリにインストールし、そのディレクトリにPATHを通してください。
xdoc2txtがインストールできたら、スパムフィルタの設定で、[添付ファイルをスキャンする]にチェックを入れます。
以下の拡張子の添付ファイルがスキャンの対象になります。
スパムフィルタの設定を参照してください。
スパムフィルタは振り分けの一部として実装されています。
具体的には、スパムフィルタを有効にすると以下のような振り分け条件が自動的に自動実行用の振り分けルールの先頭に挿入され、真と判定されるとスパムとして扱われます。
POP3, NNTPの場合
@Junk()
IMAP4の場合
@And(@Not(@Deleted()), @Junk(@Seen()))
スパムフィルタの処理の前に別のルールで処理したい場合などには、アカウントの設定で[スパムフィルタを有効にする]のチェックを外した上で、振り分けルールにて@Junk()を使用することでスパム判定を行うことができます。
対象のアカウントにスパムフォルダがないとスパムフィルタが働きません。POP3やNNTPアカウントではこのフォルダは自動的に作成されますが、IMAP4アカウントでは自動的に作成されません。また、Windows CE版でアカウントを作成するとスパムフォルダが作成されません。このような場合には、スパムを格納するためのフォルダを作成し、スパムフラグを設定する必要があります。詳細は、フォルダのプロパティを参照してください。
QMAIL3のスパムフィルタは、クリーンなメールとスパムの両方に現れるトークン(単語)を保持し、判定時にはメール中にあわられる各トークンがどれくらいクリーンとして、またはスパムとして学習されたかに基づいてスパムかどうかの判定を行います。このため、極端にスパムばかり学習させた状態だとスパムでないメールをスパムと判定してしまう可能性が高くなります。これを防ぐため、最低でも100通のクリーンなメールを学習しないと機能しないようにしてあります。
経験上、おおよそクリーンを2000通程度、スパムを1000通程度学習させるとかなり正確な判定ができるようになります。