Sun Java System Messaging Server 6.3 管理ガイド

ProcedureSpamAssassin スコアに基づいてメッセージをフィルタする

この例では、SpamAssassin スコアに基づいてメッセージをフィルタする方法を示します。spamadjust および spamtest Sieve フィルタアクションが使用されます。この例では、SpamAssassin スコアが含まれるヘッダーがすべてのメッセージに追加されます。このヘッダーは、スパム電子メールの検出を向上させるために SpamAssassin ソフトウェア管理者が使用する可能性があります。メッセージの SpamAssassin スコアが 5 〜 10 である場合、そのメッセージはユーザーのアカウントの spam フォルダにフィルタされます。メッセージの SpamAssassin スコアが 10 より大きい場合、そのメッセージは破棄されます。デフォルトでは、SpamAssassin はスコアが 5 以上のメッセージをスパムであるとみなします。

  1. フィルタ処理するメッセージを指定します。

    詳細は、「スパムを個別のフォルダにファイリングする」手順 3 を参照してください。

  2. SpamAssassin の設定ファイルを作成します。

    このファイルの名前と場所は、spamfilter_configX_file で指定したものです (次の手順を参照)。このファイルには、次に示す行が含まれます。


    debug=1
    host=127.0.0.1 
    port=783 
    mode=2 
    field=  

    host および port は、spamd が実行されているシステムの名前と、spamd が着信要求を待機するポートです。mode=2 の場合、スコアに関係なく SpamAssassin 結果文字列が常に返されます。field= は、SpamAssassin の結果文字列のプレフィックスを指定します。この例では、プレフィックスは Sieve スクリプトで指定するため、必要ありません。debug=1 は、SpamAssassin ライブラリでデバッグをオンにします。

  3. option.dat ファイルに、次に示す行を追加します。


    ! For SpamAssassin
    spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:, require ["addheader","spamtest"]; \
    spamadjust "$U"; addheader "Spam-test: $U"

    前に示した例と同様、最初の 3 行は、SpamAssassin 設定ファイル、共有ライブラリ、および、共有ライブラリで失敗があった場合に MTA 操作を続行することを指定します。残りの 2 行では、SpamAssassin から返される文字列から SpamAssassin スコア ($U、これは spamtest 操作で使用される) を抽出し、スパムスコアヘッダー (たとえば Spam-test: True; 7.3/5.0) をすべてのメッセージに追加することを指定します。

  4. スパムスコアに基づいて電子メールを処理するように、チャネルレベルのフィルタを作成します。

    「チャネルレベルのフィルタを作成する」を参照してください。このファイルに次のルールを追加します。


    require ["spamtest","relational","comparator-i;ascii-numeric","fileinto"];
    if spamtest :value "ge" :comparator "i;ascii-numeric" "10" {discard;}
    elsif spamtest :value "ge" :comparator "i;ascii-numeric" "5" {fileinto "spam";}
    else {keep;}

    2 行目では、SpamAssassin スコアが 10 以上の場合にスパム電子メールを破棄します。3 行目では、スコアが 5 以上である電子メールをユーザーの spam フォルダにファイリングします。最後の行 else {keep;} では、5 より小さいスコアを受け取ったすべてのメッセージを保持します。

  5. 設定をコンパイルしなおし、サーバーを再起動して、spamd デーモンを起動します。

    「スパムを個別のフォルダにファイリングする」の最後の手順を参照してください。