[ トップページ / メモ書きリスト ]

bsfilter を mew3.3 で使おう!!!


  1. 概要
  2. インストール
  3. データベース作成
  4. データベースの移動
  5. mew 用のセッティング
  6. mew でのコマンド

概要

以下は、bsfilter をインストールし、 mew で利用する際のメモ書きである。 なお、メールの受信は fetchmail で行い、スパムとハムの振り分けは procmail で行うことを想定しているため、mew で行うのは bsfilter のデータベース の更新のみである。

インストール

Debian GNU/Linux の Sarge では、deb パッケージになっているので、 以下のコマンドでインストールされる。

# apt-get install bsfilter

いくつかの ruby ライブラリもインストールされる。

データベース作成

bsfilter の clean なデータベースを作成する. とりあえず 研究室関連のメールと, (それだけだと英語に関するものが弱そうなので) cvs commit メールを登録する.

$ bsfilter --add-clean ~/Mail/yyhlab/*
$ bsfilter --add-clean ~/Mail/yyhlab/y2003/*
$ bsfilter --add-clean ~/Mail/gtool4-cvs-commit/*
$ bsfilter --add-clean ~/Mail/dcpam-cvs-commit/*

次に spam データベースを作成する. bsfilter で紹介される Linux-usersメイリングリストのspamをかき集めたもの をダウンロードし, それを spam として登録する.

$ mkdir bsfilter_spam ; cd bsfilter_spam
$ wget http://www.flcl.org/~yoh/spam9xxxx.tar.gz
$ tar xvfz spam9xxxx.tar.gz
$ bsfilter --add-spam ?????

最後に clean/spame な確率を求める.

$ bsfilter --update

データベースの移動

データベースはデフォルトでは ~/.bsfilter ディレクトリに作成される. これをバックアップを取っている ~/Documents 領域へ移動し, シンボリック リンクをはる.

$ mv ~/.bsfilter ~/Documents/bsfilter
$ ln -s ~/Documents/bsfilter ~/.bsfilter

mew 用のセッティング

bsfilter を mew で利用する方法に関しては bsfilter with mew を参照のこと。

mew に必要なファイルを emacs lisp のパスの通った場所に置く。 ここでは ~/.site-lisp/bsfilter というディレクトリを作成して、 その下に置く。そこへのパスは後で ~/.emacs に記述する。 なお、必要なファイルは bsfilter パッケージをインストールした時点で /usr/share/doc/bsfilter/examples/mua/mew3/ に置かれる。 (バージョンが違うと異なる場合があるので注意)

$ mkdir ~/.site-lisp/bsfilter
$ cd ~/.site-lisp/bsfilter
$ cp /usr/share/doc/bsfilter/examples/mua/mew3/* ./

コピーされるうち、bs_clean, bs_mark, bs_spam はシェルスクリプト。 mew.el は emacs lisp である。

mew.el の改名

mew.el は bsfilter.el と改名する。

$ mv mew.el bsfilter.el

シェルスクリプトへのパスを通す

パスを通しても良いが、ここでは ~/bin 以下からシンボリックリンクをはる。

$ cd ~/bin
$ ln -s ../site_lisp/bsfilter/bs_clean
$ ln -s ../site_lisp/bsfilter/bs_mark
$ ln -s ../site_lisp/bsfilter/bs_spam

~/.mew.el の編集

mew.el の改名 で bsfilter.el を読み込むよう, ~/.mew.el に以下の行を追加

(setq bsfilter-filename "~/.site-lisp/bsfilter/bsfilter.el")
(if (file-exists-p bsfilter-filename)
    (load-file bsfilter-filename))

ヘッダ情報の表示に関するカスタマイズ

bsfilter から提供されるデフォルトの mew.el (上記では bsfilter.el と リネームしたもの) では, bsfilter の --insert-flag オプションで追加される X-Spam-Flag ヘッダと --insert-probability オプションで追加される X-Spam-Probability が Summary-mode で Subject など よりも下に表示されるようになっている. もしも他のヘッダを 表示したい場合には, mew.el の以下の部分を編集すると良い.

デフォルトの mew.el (11 行目 〜 15 行目)

(setq mew-field-spec
      (reverse (append (list (car (reverse mew-field-spec)))
                       '(("^X-Spam-Probability:$" t)
                         ("^X-Spam-Flag:$" t))
                       (cdr (reverse mew-field-spec)))))

例えば X-Spam-CheckX-Spam-Probability-Plus という ヘッダを表示させたい場合には以下のように編集する.

(setq mew-field-spec
      (reverse (append (list (car (reverse mew-field-spec)))
                       '(("^X-Spam-Check:$" t)
                         ("^X-Spam-Probability-Plus:$" t))
                       (cdr (reverse mew-field-spec)))))

mew でのコマンド

Summary モードで以下のコマンドにより bsfilter のデータベースを 更新できる. ( bsfilter with mew より抜粋)

bc
カーソルのある行のメイルに対して、--add-clean --sub-spam --updateを 行う。 -aでの誤判定(cleanをspamと誤判定)に基づき更新されたデータベー スを修復するのに使用できる。
bs
カーソルのある行のメイルに対して、--sub-clean --add-spam --updateを 行う。 -aでの誤判定(spamをcleanと誤判定)に基づき更新されたデータベース を修復するのに使用できる。

Last Updated: 2005/07/04, Since: 2005/03/22 mailto: morikawa_email