http://bsfilter.org/ で配布されている、メールがspamかどうかを自動判定するフィルタです。
例によって ports の mail/bsfilter から簡単にインストールできます。
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 との連携で使います。
% bsfilter --pop --auto-update &
ログインしたときに自動的に起動するように、~/.xsession に書いています。
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用のフロントエンド も入れるとさらに便利になると思いますが、今回はそこまではしていません。