振分けフィールドの追加(KaMail/POPFile)
はじめに
spamがぽろぽろと届き始めた.最初は気にしないで削除していたのだが,だんだん面倒くさくなってきた.そこで,POPFileを使ってフィルタリングをすることにした.POPFileは内容を見て受信したメールの性質を自動的に判定してくれる.その結果で件名を変更したり,特別なヘッダを付け加えることが可能である.後は,メーラで振分ければokである.件名の変更は見にくくなるので,POPFileが追加するヘッダX-Text-Classificationの内容でメールを振分けることにした.
メーラはkamailを使っている.振分けも可能なメーラなのだが,デフォルトで設定した以外のヘッダを使うには,少々手間がかかる.そのやり方を書いておくことにした.
なお,xyzzyの各ディレクトリを以下のように記述する.
- インストールディレクトリ
- ${XYZZY_HOME}
- kamailのインストールディレクトリ
- ${XYZZY_HOME}/site-list/kamail
- kamailの設定ファイル
- ${XYZZY_HOME}/KaMail/.kamail
popfileのインストールは省略するが,POPFile ドキュメンテーションが詳しい.
.kamailの修正
振分け条件に指定できるヘッダはcache-header-field-listに定義したものである.デフォルトは${XYZZY_HOME}/site-lisp/kamail/cache.l内の以下の記述である.
(defvar *cache-header-field-list* '("subject" "from" "to" "cc" "reply-to" "newsgroups" "date" "message-id" "in-reply-to" "references" "x-ml-name" "content-type"))
cache.lそのものは変更しない.${XYZZY_HOME}/KaMail/.kamailにPOPFileの付加するヘッダX-Text-Classificationを追加する.以下の通りである.
(setq *cache-header-field-list* '("subject" "from" "to" "cc" "reply-to" "newsgroups" "date" "message-id" "in-reply-to" "references" "x-ml-name" "content-type" "X-Text-Classification"))
全フォルダの全キャッシュの作り変え
cache-header-field-listを変更すると,全フォルダの全メールが未読の状態になる.全フォルダの全キャッシュを作り変える.KaMailを起動して以下のコマンドを実行する.
M-x km::kamail-folder-cache-update-all
振分けルールの記述
${XYZZY_HOME}/KaMail/Rulesに振分けルールを追加する.例えば以下の通りである.POPFileがX-Text-Classificationにspamを設定したメールは+trashフォルダに移動する.
("+trash" "x-text-classification" "spam")
注意点を一つ.x-text-classificationは小文字のみでなくてはならない.X-Text-Classificationでは振分けしてくれない.理由は良く分からない.