POPFileをmew/zebedee環境で使おう!

  1. はじめに

    POPFileはオープンソースのメールフィルタプログラムです。設定が簡単で、様々なメールクライアントから使うことができます。SPAMに困っている人にお勧めです。

    一方、mew-4.xからは、SPAM対策として、spamassasinなどが付けたフィールドから自動仕訳を行なうように設定できるようになりました。

    そこで、今回はPOPFileをzebedeeサーバ上でdaemonとして動かし、SPAMと思わしきメールには、特定のフィールド値を指定し、mew-4.xでは、そのフィールド値によって、仕訳を行なうという方法を解説します。

    イメージ図
     Host a               Host b                 ISP
    +-------+           +-------+              +-----+
    |mew-4.x|===========|POPFile|--------------|pop3d|
    +-------+           +-------+              +-----+
            |<-WaveLAN->|       |<-wired line->|
           zebedee tunnel
            (encrypted)
    
  2. zebedeeのインストールと設定

    こちらを参考に、インストールと設定を行なって下さい。

  3. POPFileのインストール

    POPFileは0.20.x以降から、BerkeleyDBが必要になります。今回は、わざわざBerkeleyDBをインストールするのが面倒なので(^^;;;、その前のバージョンを使用します。こちらからダウンロードします。

    ダウンロードしたら、インストールしたいディレクトリに展開し、以下のコマンドを実行します。

    % perl popfile.pl
    

    以下のメッセージが表示されたら、インストールされているperlのバージョンが古いです。5.8以上をインストールして下さい。

    syntax error at popfile.pl line 26, near "require v5.8"
    BEGIN not safe after errors--compilation aborted at popfile.pl line 167.
    

    以下のメッセージが表示されたら、POPFileが正常に起動しています。

    POPFile Engine v0.19.1 loading
    
        Loading... 
             {core: config logger} 
             {classifier: bayes} 
             {interface: html} 
             {proxy: pop3} 
    
    POPFile Engine v0.19.1 starting
    
        Initializing... 
             {core: config logger} 
             {interface: html} 
             {classifier: bayes} 
             {proxy: pop3} 
    
        Starting...     
             {core: config logger} 
             {interface: html} 
             {classifier: bayes} 
             {proxy: pop3} 
    
    POPFile Engine v0.19.1 running
    

    次に、POPFileをインストールしたマシン上で、ブラウザでhttp://127.0.0.1:8080へアクセスします。すると、以下の画面が表示されます。

    ここで、Bucketsをクリックすると、次の画面が表示されます。

    画面を下までスクロールさせ、バケツを作成します。「Create bucket with name」のところで、名前を入力してから「Create」ボタンをクリックします。

    「allowed」と「denied」を作成し、使い続けるとこのような画面になります。

    次に、「Configuration」をクリックします。メールに追加されるヘッダの設定を行ないます。私の場合は、以下の内容に設定しました。

    こうすると、メールに挿入されるヘッダは以下のようになります。

  4. mewの設定

    すでに、mew-4.xがインストールされているものとします。まず、.emacsに以下の設定を追加します。

    (setq mew-spam: "X-Text-Classification:")
    

    次に、.mewのpop-userの設定を「pop-server:pop-user」の形式に変更します。

    (setq mew-config-alist 
     '(("isp1"
    ;   ("smtp-server" . "smtp.isp1.ne.jp")
       ("smtp-server" . "localhost")
       ("smtp-port" . "11025")
       ("pop-user" . "pop3.isp1.ne.jp:user")
    ;   ("pop-server" . "pop3.isp1.ne.jp")
       ("pop-server" . "localhost")
       ("pop-port" . "11110")
      )
    ))
    

    さらに、.mewに以下の設定を追加します。これで、「>X-Text-Classification: denied」というヘッダを持ったメールは「+from/ube」へ仕訳されるようになります。

    (defun mew-spam-popfile (val)
      (let ((case-fold-search t))
        (if (string-match "denied" val) "+from/ube")))
    
    (setq mew-scan-fields (delete mew-spam: mew-scan-fields))
    (setq mew-spam: "X-Text-Classification:")
    (setq mew-scan-fields (append mew-scan-fields (list mew-spam:)))
    
    (setq mew-inbox-action-alist
          '(("X-Text-Classification:" mew-spam-popfile)))
    
  5. zebedee serverの設定

    ここまで来たら、もう一息です。zebedee serverのトンネルから出たパケットがPOPFileを通過するように、設定を変更します。

    # SMTP to ISP1
    target smtp.isp1.ne.jp:25
    # POP3 to ISP1
    # target pop3.isp1.ne.jp:110
    target localhost:110
    

    以上で作業はすべて終了です。うまくいきましたか?間にzebedeeが入っているため、パケットキャプチャしても、状況を確認することができないのが難点ですが、頑張って設定して下さい。


Copyright(C) 2001-2008 ykondou.org
webmaster@ykondou.org
Key fingerprint = 7721 FB0E 42CC 2BD3 DB09 5868 3EC7 B5D2 B75C 5DAA

Valid CSS! Valid HTML 4.01!