[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:26376] mew4 + bsfilter
-
From:Chie Nakatani
-
Date:Thu, 15 Sep 2005 20:13:46 +0900 (JST)
- Subject: [plamo:26376] mew4 + bsfilter
- From: Chie Nakatani <jeanne@xxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 15 Sep 2005 20:14:39 +0900 (JST)
こんにちは
mew4 + bsfilter がともあれ私の目的90%くらいは動きましたので、
ちょっと報告しておきます。
Mew4FAQ に、bsfilter を使って spam 対策ができると書いてありました。
http://www.wikiroom.com/mew/index.php?Mew4FAQ
こんな内容
------------------
スパムフィルタ †
* 取得、あるいはスキャン時に、メッセージに 'o' や 'D' マークを付ける
ことが可能になりました。(mew-inbox-action-alist)
* pick のような感じでコマンドを呼び出して、スパムに '*' マークを付け
ることができます。('"')
* IMAP サーバ内でスパムを削除/リファイルし、必要なメッセージだけを
スキャンできるようになりました。('mew-imap-spam-field')
* 現在のメッセージをスパム、あるいは非スパム(ハム)として学習させる
ことができます。("ls" と "lh")
------------------
ともあれ、メール取得時に D または trash 行きを自動的に記号付けしてくれ
る、spam メールに関して、新規のものがきたら簡単に学習できる、mew でそ
の程度ができれば、まあ、それなりの目的は達成してくれるので、mew4 にし
たあと、bsfilter をインストールしてみました。
ちょっとよけいなこともメモしてますが、
こんな風にやりました。
必要なもの
bsfilter-1.0.9.tgz
ruby-1.8.2.tar.gz
(1)bsfilter
jeanne@chie:~/tools/bsfilter-1.0.9$ ls
COPYING bsfilter/ htdocs/ mda/ mua/
$ cd ./bsfilter
jeanne@chie:~/tools/bsfilter-1.0.9/bsfilter$ ls
bsfilter* bsfilter.exe* bsfilter.exr bsfilterw.exe*
bsfilter をパスのあるディレクトリにコピー
# cp bsfilter /usr/bin
ここにあるemacs.el と mew.el のなかみを必要なファイルに書き加える。
./bsfilter-1.0.9/mua/mew4$ ls
emacs.el mew.el
* mua/mew4/emacs.elを~/.emacs.elに追加する。
* mua/mew4/mew.elを~/.mew.elに追加する。
(私の場合、+spam は +trash にしました。)
-----------------------
.mew.el に加えてた記述
;bsfilter
(setq mew-pop-proxy-server "localhost")
(setq mew-pop-proxy-port "10110")
(defun mew-bsfilter (val)
(let ((case-fold-search t))
(if (string-match "yes" val) "+trash")))
(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)))
; put "D"
(defun mew-spam-bsfilter (val)
(let ((case-fold-search t))
(if (string-match "yes" val) ?D)))
; put "o +sapm" at inc
(defun mew-spam-bsfilter (val)
(let ((case-fold-search t))
(if (string-match "yes" val) "+trash")))
(setq mew-inbox-action-alist
'(("X-Spam-Flag:" mew-spam-bsfilter)))
; for "ls" (learn-spam)
(setq mew-spam-prog "bsfilter")
(setq mew-spam-prog-args '("-C" "-s" "-u"))
; for "lh" (learn-ham)
(setq mew-ham-prog "bsfilter")
(setq mew-ham-prog-args '("-c" "-S" "-u"))
; for "bm" (mark-spam)
(define-key mew-summary-mode-map "bm" 'mew-summary-bsfilter-mark-region)
(defun mew-summary-bsfilter-mark-region (&optional arg)
"study/judge the region and put the '*' mark onto spams.
need to re-learn if judgment of bsfilter is wrong"
(interactive "P")
(mew-pickable
(let ((func 'mew-summary-pick-with-cmd)
(mew-inherit-grep-cmd "bsfilter -a --list-spam"))
(mew-summary-pick-body func t nil 'nopattern))))
; show X-Spam-Flag and X-Spam-Probability in message buffer
(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)))))
-------------------
(2)bsfilter の使い方
mewがメッセージを取得する際、既にMTA, POP proxy等によりX-Spam-Flagヘッダが
付いている場合には、spamに自動的に"D"マークが付く。
summaryモードで以下が利用できる。
lh
learn-ham。現在のメッセージをcleanとして学習する。
ls
learn-spam。現在のメッセージをspamとして学習する。
bm
リージョン内のメイルを学習、判定。spamには"*"マークが付く。
サマリーモードで、該当メールに ls と入力してやると、
ミニバッファに Laening as spam.... というメッセージを出して、
「学習」する。
(3)bsfilter の起動
$ bsfilter --pop --auto-update --insert-flag --insert-probability --pop-server mbox.kyoto-inet.or.jp --pop-port 110 --pop-proxy-port 10110 &
確認
395 pts/0 S 0:00 ruby /usr/bin/bsfilter --pop --auto-update --insert-flag --insert-probability --pop-server mbox.kyoto-inet.or.jp --pop-port 110 --pop-proxy-port 10110
bsfilter に、clean なメールと spam メールについて学習してもらう
(コマンドからもいけますが、
mew のサマリーモードで ls と入力すると学習する)
クリーンメール
$ bsfilter --add-clean ~/Mail/inbox/*
$ bsfilter --add-clean ~/Mail/メールフォルダー/*
spam メール
$ bsfilter --add-spam ~/Mail/trash/*
最後に
$ bsfilter --update
一旦学習が終わったらお試し
$ bsfilter ~/Mail/inbox/1 (番号は必要なものを)
こんな感じで該当のメールが spam かどうかをbsfilter が判断する
jeanne@chie:~$ bsfilter ~/Mail/inbox/1
combined probability /home/jeanne/Mail/inbox/1 1 0.000000
jeanne@chie:~/Mail/inbox$ bsfilter ~/Mail/inbox/81
combined probability /home/jeanne/Mail/inbox/81 1 0.500000
これは 100% spam ってこと
jeanne@chie:~/Mail/trash$ bsfilter ~/Mail/trash/95
combined probability /home/jeanne/Mail/trash/95 1 1.000000
(5)効果!!
ちょっと見にくいですが、
spam と判断されたものは、trash 記号がつきます。
いま横行している info@ の spam はランダムなドメイン名になっているようで、
新しいものはなかなかひっかからないですね。
ここでひっかからなかったメールは ls で spam 学習をさせておきます。
下の例だと、
09/15 info@ddt-kkk.c お早めに |お忙しいところ申し
このメールがクリーンと判断されています。
o 09/15 info@edrftg.co メール転送〔0912〕 |<+trash> 宛先:鈴木 あずさ 件名
94 <20050915092034.22498.qmail@mail.edrftg.com>
o 09/15 info@vgbhnj.co ★男性は完全無料登録をして待つ|<+trash> ★男性は完全無料登録を
95 <20050915081000.20887.qmail@mail.vgbhnj.com>
oM09/15 27, 28 ムナHメ゜チP ミタチOメタ ム ツOヌミタニナヘネ゜フネ, マミOヤナムム|<+trash>
96 <143a01c5ba27$06fc2c45$4c70ca77@samerica.com>
o 09/15 "James Corbett Now cheaper: Proven SPUR-M for|<+trash> SPUR-M Formula Increase
97 <24d001c5b9e4$58505650$56c4fb2e@tyxy4u2>
o 09/15 info@mjhstd.co チャットしてからの逆¥です |<+trash> http://1191.jp/gyakuen1
98 <20050915074231.22900.qmail@mail.mjhstd.com>
oM09/15 stopbbs001@hot Delivery (jeanne@mbox.kyoto-in|<+trash>
99 <200509151019.TAA90035@mrelay.kyoto-inet.or.jp>
o 09/15 "Dwight Neely" Solid Credit Loans made easy |<+trash> Did you realize that as
100 <3DF4FB83.48004@ubp.edu.ar>
oM09/15 info@tactgroup Deliver Mail (jeanne@mbox.kyot|<+trash>
101 <200509151022.TAA95032@mrelay.kyoto-inet.or.jp>
09/15 info@ddt-kkk.c お早めに |お忙しいところ申し訳有
102 <20050915100232.24051.qmail@mail.ddt-kkk.com>
o 09/15 "TRUST INTERNA ** no subject ** |<+trash> ATENTION, WINNING NOTIC
103 <DFF85A49.E4E0066@walla.com>
mew で受け取り時に、spam は自動的に o 記号が付され、<+trash>に区分けされ
ますので、あとは x を入力すれば、一括で trash box に移動します。
参考
http://homepage3.nifty.com/peterpan/Email/instbsfilter-cnf.html
中谷千絵
- Follow-Ups
-
- [plamo:26377] Re: mew4 + bsfilter, Shun-ichi TAHARA (田原 俊一)
[検索ページ]
[メール一覧]
Plamo ML 公開システム