メール環境: fetchmail/scmail/scbayes [comp]
幸い、量の上では SPAM メールにまだ悩まされていないけれど、
一通でも届けば不愉快なことにかわりはない。
これまでに届いた分は Apple Mail の SPAM フィルタに学習させながら、
大事に大事に取っておいた。せっかくの学習材料だから。
さて、IMAP に移行したので、MUA とは独立して SPAM 処理したくなった。
のちのち優れた MUA が現れたとき、乗り換えのしきいも低くなるし。
今こそ取っておいた SPAM メールを活かすときだ。
で、タイトルのとおり、fetchmail, scmail, scbayes を組み合わせて
MUA の手前までのメール環境を整えてみた。
fetchmail は Mac OS X に標準でインストールされている。
fetchmail の設定は Google に丸投げするとして、~/.fetchmailrc の例だけを。
defaults protocol apop uidl keep no rewrite mda "/opt/local/bin/scmail-deliver" no mimedecode poll pop.XXX.so-net.ne.jp username "ユーザ名" password "パスワード"
テスト中なので、メールをサーバに残す keep オプションを指定してある。
mda オプションに設定したのは scmail のメール配送・振り分けコマンド。
scmail/scbayes には Scheme インタプリタ Gauche が要るので、
前もってインストールしておく。
僕は DarwinPorts の Portfile を書き換えて、最新の 0.8.3 を入れた。
scmail はメール振り分けをするメールフィルタ。~/.scmail/config は次のとおり。
;; -*- scheme -*- ( :smtp-host "localhost" :log-file "~/.scmail/log" :umask #o077 ;; for usual mail filtering :refile-rules "~/.scmail/refile-rules" :deliver-rules "~/.scmail/deliver-rules" ;; for spam filtering :token-table "~/.scmail/token-table.dbm" :digest "~/.scmail/digest.dbm" ;; for Maildir :mailbox "~/Library/Maildir" :inbox "INBOX" :spam "Junk" ; a folder for spam mails :mailbox-type maildir )
なお、これは Binc IMAP の設定 (抜粋) で、
depot = "IMAPdir", path = "Library/Maildir",
としている場合の対応する。フォルダ Junk は適当に作っておく。
refile-/delever-rules は、scbayes を使う設定を残してコメントアウト。
その scbayes は最近主流になった Bayes 検定を用いたスパムフィルタ。
scmail といっしょにインストールされる。
あとは、SPAM と 非 SPAM メールの学習をさせて確率テーブルを作るだけ。
手順は scbayes のページにあるとおり。
とりあえず、典型的なメールのあるフォルダをそれぞれの学習に使った。
fetchmail は crontab で動かしている。サイレントモードで標準出力を抑制。
深夜にメールが来てもどうせ読まないので、6 時から 24 時台に 15 分間隔で。
0-59/15 6-23,0 * * * /usr/bin/fetchmail --silent
使い始めてまもないけど、これまで scmail/scbayes は間違いなく振り分けている。
ところで、以前は scmail の代わりに procmail を使っていた。
でも、数年前に設定をした (レシピを書いた) きりで使うばかりだったせいか、
レシピの書き方をきれいさっぱり忘れた。他で活用できないその文法が懐かしくもある。
この記事の『procmail 恐怖症』には納得。
コメント 0