[PC周辺] qpopper -> fetchmail -> qmail -> procmail -> uw-imapd -> wanderlust な設定 (20070423)

新しい職場 では imap 環境がないらしく, 自前で fetchmail を利用して imap 環境を構築することにした.

qpopper

まず,qpopper.これは管理者により APOP な設定がされているので popauth で APOP の password をつくってもらう(APOP も この 影響で廃止されそうな雰囲気があるが).

procmail

とりあえずやるきなしなしで,

[~/.procmailrc]
PATH=/bin:/sbin:/usr/bin:/usr/local/bin:.
MAILDIR=$HOME/imap4
LOCKFILE=$MAILDIR/.lock
PMDIR=$HOME/.procmail
LOGFILE=$PMDIR/.log_procmail
SENDMAIL=/usr/sbin/sendmail
SHELL=/bin/sh

とか.

MAILDIR=$HOME/imap4

に関しては後述.$PMDIR はあとで

INCLUDERC=$PMDIR/rc.spam

とか(SPAM filtering および自動 refile の設定)で利用する予定の directory.

qmail

つぎに,qmail.これは fetchmail で qpopper をたたいて,その mail をそ のまま qmail に smtp するために入れる.ちなみに fetchmail から直接 procmail を

[.fetchmailrc]
mda "/usr/bin/procmail"

とかでたたくこともできるが,この場合いわゆる MAIL FROM を付けてくれな いらしく,正しく Mailbox として解釈できない妙な spool ができてしまう (なんとかならないか調査してみたが挫折).

Debian 環境なので,まず qmail-src と ucspi-tcp-src を入れて,

# build-qmail
# build-ucspi-tcp

とかで

をつくり dpkg -i する(たぶん他の MTA と conflict するので dselect とかで要調整).

% echo hoge | /usr/sbin/qmail-inject myn

とかで /var/mail/myn ができることを確認.

uw-imapd

つぎに uw-imapd.courier-imap を使うことも考えられるが,個人的にずっと uw-imapd を使って来ているので,今回も uw-imapd で. Default では $HOME が imap の root folder になってしまうので(感じ悪い),

[/etc/c-client.cf ]
I accept the risk for IMAP toolkit 4.1.
set mail-subdirectory imap4

とか書いて,~/imap4/ 以下に spool していく方針とする(この directory 名も個人的な昔からの伝統).で,

% cd ~/imap4/ ; ln -s /var/mail/myn INBOX

しておく.ちなみに普通に Debian な package を入れると inetd.conf は以下のような感じ.

[/etc/inetd.conf]
imap2   stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/imapd
imaps   stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/imapd

wanderlust

%inbox@localhost:993!

とかな folder で check (パスワードはログインパスワード). localhost がプライベートネットワークな計算機なので 普通の imap でもいいのだが,なんとなく imaps で.

fetchmail

[~/.fetchmailrc]
set daemon 60
set postmaster root
set nobouncemail
set logfile fetchmail.log

defaults
  protocol apop
  no rewrite
  no mimedecode
  keep
  smtphost localhost

poll apopserver.example.org
  username "myn"
  password "XXXXXXXX"

とか書いて,fetchmail を起動.しばらくこれで test した後, 「keep」という行を削除して POP server に mail を残さないようにする.

ちなみに,たとえば何らかの問題により qmail が起動していない状態で,

まあ,冗長性は他で確保されているので,keep しないことにする.

参考関連 Link
関連リンク


Last-modified: Sat Jun 16 21:46:28 +0900 2007

全インデックス