Courier-IMAP + maildrop + Prom-WL

IMAP サーバに Courier-IMAP、MDA に maildrop、MUA に Wanderlust + Prom-WL を 使う場合の設定例です。

Courier-IMAP

ふつーにインストールするとふつーには使えるはずです。

maildrop

まずは、~/.mailfilter を用意します。 Prom-WL を使うためには以下の点に注意。

  1. "logfile" を指定してログを生成
  2. ログを操作する可能性がある所では "dotlock" を作成する。
MAILDIR="$HOME/Maildir/"
DEFAULT="$MAILDIR"
LOCKFILE="$MAILDIR/.lock"

#cc "$HOME/.maildrop.save"

logfile "${MAILDIR}maildrop.log"

xfilter "/usr/local/bin/spamassassin"

dotlock "$LOCKFILE" {
	if (/^X-Spam-Status: Yes/:h)
	{
		to "$MAILDIR.spam/"
	}

	if (/^X-ML-Name:[ \t]*([^ \t\.]+)/:h || /^List-Id:[ \t]*<?([^ \t\.@]+)/:h)
	{
		ML="$MAILDIR.ml.$MATCH1/"
		`test -d $ML`
		if ($RETURNCODE == 0)
		{
			to "$ML"
		}
	}

	to "$MAILDIR"
}

あとは .forward に書くなり、fetchmail から呼ぶなり適当に。

Prom-WL

maildrop のログの形式に合わせて、proc-folder-regexp を設定します。
それと、proc-log-list などが "/" からの絶対パスだと動作しない *1 のを 適当に回避しました。

(let ((maildir (expand-file-name "~/Maildir/")))
  (setq proc-log-list (list (expand-file-name "maildrop.log" maildir))
	proc-keep-log (expand-file-name "maildrop.bak.log" maildir)
	proc-lock-file (expand-file-name ".lock" maildir))
  (setq proc-folder-regexp (concat "File: " maildir "\\([^/ \t]*\\)/?"))
  (setq prom-wl-folder-prefix-alist '((imap4 . "%INBOX") (nil . "%INBOX"))))

なお、prom-wl-folder-prefix-alist を '((imap4 . "%INBOX") (nil . ".")) とすると、IMAP サーバを介さずに直接 Maildir フォルダにアクセスできる はずです。


Short tips

マークフォルダ

"/flag:unread/%INBOX" などの未読フォルダを用意している場合に、 そちらをチェックするための advice です。

(defadvice prom-wl-add-check-entity-list (before unread-folder (folder) activate)
  (let ((unread-folder (concat "/flag:unread/" folder)))
    (when (wl-folder-search-entity-by-name unread-folder wl-folder-entity)
      (setq folder unread-folder))))

Valid XHTML 1.1! Valid CSS!
戻る