[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:26376] mew4 + bsfilter



こんにちは
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 公開システム