[[▲>技術文書]]
#topicpath
----

* bsfilter とは [#xb37ef71]

http://bsfilter.org/ で配布されている、メールがspamかどうかを自動判定するフィルタです。

* インストール [#k0606813]

例によって ports の mail/bsfilter から簡単にインストールできます。

* 設定や準備 [#x3793bb8]

spam かどうかを覚えさせます。

 % bsfilter --add-clean ~/Mail/clean/*
 % bsfilter --add-spam ~/Mail/spam/*
 % bsfilter --update

~~/.bsfilter/bsfilter.conf を書きます。 /usr/local/share/examples/bsfilter/bsfilter.conf からコピーして書き換えるのが楽でしょう。

 ## example of bsfilter.conf
 #jtokenizer kakasi # 'make WITH_KAKASI=yes install'
 #jtokenizer MeCab # 'make WITH_MECAB=yes install'
 spam-cutoff 0.6
 
 ## POP Proxy
 ## (bsfilter --pop --auto-update)
 pop-server xxxxx.odn.ne.jp
 pop-proxy-port 10110
 pop-user xxxxxxxx
 insert-flag
 insert-probability

spam-cutoff の数字は spam かどうかを判定するしきい値なので状況に応じて適宜変えていいと思いますが、難しいのでそのままにしておきます。

insert-flag は MUA との連携で使います。

* POP proxy として起動 [#za9e38e3]

 % bsfilter --pop --auto-update &

ログインしたときに自動的に起動するように、~/.xsession に書いています。

* Mewでの設定 [#ncf779b4]

POP の設定を変更して、起動した POP proxy に向くようにします。わたしはいくつかのアカウントを使い分けているので、 mew-config-alist の中で設定しています。

 (setq mew-config-alist
  ((略))
   ("pop-server" . "localhost")
   ("pop-port" . "10110")
  ((略)))

~~/.mew.el で設定を書いて終了です。

 ;; bsfilter
 (defun mew-bsfilter (val)
   (let ((case-fold-search t))
     (if (string-match "Yes" val) "+spam")))
 (setq mew-scan-fields (delete mew-spam: mew-scan-fields))
 (setq mew-scan-fields (delete "Body" mew-scan-fields))
 (setq mew-spam: "X-Spam-Flag:")
 (setq mew-scan-fields (append mew-scan-fields (list mew-spam: "Body")))
 (setq mew-inbox-action-alist
       '(("X-Spam-Flag:" mew-bsfilter)))

この設定は Mew4FAQ から頂いてきました。 POP してきたときに自動的に +spam フォルダへ refile されるようなマークが付けられるようになります。

Mew用のフロントエンド も入れるとさらに便利になると思いますが、今回はそこまではしていません。

----
#comment

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS