wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

ベイジアンスパムフィルタ

とってもいまさら感がありますが(笑)、これまた現在試行運用中。
qmail+imapという環境を使ってるところで導入する場合、bsfilterでSPAM撲滅というページが参考になります。
それでもやっぱり気になるところがあって調べたので、それのメモ。
以下のような2つのファイルを作る。

  • ~/.qmailの内容(2行)
/var/qmail/bin/condredirect アカウント名-spam /home/アカウント名/bsfilter

./Maildir/

./Maildir/

これらのファイルの意味は以下のとおり。

  • .qmailの内容
    • .qmailに記述された内容は、上からシーケンシャルに解釈される。
      • condredirectは、CONDition REDIRECTの略と推定。
      • condredirectの第一引数はメールアドレス(ローカル配送なので、これだけで済む)
      • condredirectの第二引数は、動く際にメールを標準入力から食べるコマンド(今回はbsfilterが指定される)。
    • まず最初の行が評価(というか実行)される。
    • 今回の場合、bsfilterにメールの内容を食べさせ、Spam判定されるとステータス0が返り、そうでない場合はそれ以外の値が返る。この場合、condredirectの第二引数に与えたコマンドのステータスが0になる(Spam判定された)場合は、第一引数に与えたアドレスにメールを転送し、それ以降の行は実行しない。→.qmail-spamの内容が有効に。
    • Spam判定された場合は、順当にMaildir配下のメールボックス(inbox相当のところ)にメールは入る。
    • 参考:condredirectのマニュアル
  • .qmail-spamの内容
    • ~/.qmail-hogehogeというファイルを作ると、例えばそのホームディレクトリがwakatonoというユーザの持ち物だった場合、そのマシン上のwakatono-hogehogeというメールアドレスが有効になる。例えば、そのマシンがexample.comというドメインのメールサーバだった場合、wakatonoというユーザがそのメールサーバ上にあれば、wakatono@example.comというメールアドレスが存在し、さらにそのホームディレクトリ直下に.qmail-hogehogeというファイルがあった場合には、wakatono-hogehoge@example.comというメールアドレスができる。そのメールアドレスにメールが来た場合の実際の配送先(転送先のメールアドレスとかメールボックスとか)は、.qmail-hogehogeファイルの中に記述することになる。
    • 今回の場合、配送先に./Maildir/.SPAM/とかかれてるので、配送されてきたメールは全部このディレクトリ配下(要はSPAMフォルダ)に格納される。

…結構しんどい(笑)