binc-imap with qmail-ldap
qmail-ldap と組み合わせる IMAP4 サーバを幾つか見ていたのですが、Courier-IMAP は設定がどうも馴染めなかった*1ので、Binc IMAP を前から見ていました。日本語だと http://www.iron-horse.org/~naokih/bincimap/ にすばらしいドキュメントがあります。Binc IMAP の特徴は以下のとおりだそうです。
- Maildir 用にデザインされた、モジュール式の IMAP サーバです。 安全で、安定して高速に動作し、また拡張しやすい、 管理が簡単なサーバを目指している。
- qmail-pop3d を知っている人にとっては、 この IMAP サーバは、自然な選択 でしょう。 Binc IMAP は、同様の方法で起動されますし、 認証には checkpassword を使います。
- バージョン 1.2 は Maildir 専用の IMAP サーバですが、 将来のバージョンでは他のメールボックス(たとえば mbox)もサポートする予定です。
- RedHat、Mandrake、SuSe、 Debian Linux、OpenBSD、FreeBSD、Solaris/SunOS、Mac OS X などでコンパイル、実行可能です。
私の場合、2(と 4 もね :-)が重要でした。設定が複雑になるとスタッフに説明するのが面倒なので、qmail(qmail-ldap)と同様の設定なのは非常に有難いのです。
インストール
VMware 上の FreeBSD 5.4-PRERLELEASE*2で以下のように Binc IMAP をインストールしました。
# cd /usr/ports/mail/bincimap # make install clean # pkg_info | grep bincimap bincimap-1.2.11 Light-weight IMAP server for Maildir
設定
設定ファイルは以下の 2つくらいです。
- Binc IMAP 設定ファイル(/usr/local/etc/bincimap/bincimap.conf)
- IMAP サーバ起動用 run スクリプト(/var/qmail/boot/qmail-imapd/run)
/usr/local/etc/bincimap/bincimap.conf
こんな感じです。空行、コメント行は省いてあります。
Authentication { allow plain auth in non ssl = "yes", auth penalty = 4, disable starttls = "yes" } Security { jail path = "/usr/local/bin", jail user = "nobody", jail group = "nobody" } Log { type = "syslog", environment ip variable = "TCPREMOTEIP" } Mailbox { depot = "Maildir++", type = "Maildir", path = "Maildir", auto create inbox = "yes", auto subscribe mailboxes = "INBOX", umask = "077" } Session { idle timeout = 1860, auth timeout = 60, transfer timeout = 1200, transfer buffer size = 1024 } SSL { pem file = "/usr/local/etc/bincimap/bincimap.pem", ca file = "", ca path = "", cipher list = "!ADH:RC4+RSA:HIGH:MEDIUM:LOW:EXP:+SSLv2:+EXP", verify peer = "no" }
/var/qmail/boot/qmail-imapd/run
qmail-ldap 付属の Courier-IMAP 用 run スクリプトをちょっといじっただけです。
#!/bin/sh exec 2>&1 # # IMAP service: this script is for Binc IMAP # QMAIL="/var/qmail" ME="`head -1 $QMAIL/control/me`" PATH="$QMAIL/bin:$PATH" # source the environemt in ./env eval `env - PATH=$PATH envdir ./env awk '\ BEGIN { for (i in ENVIRON) \ if (i != "PATH") { \ printf "export %s=\"%s\"\\n", i, ENVIRON[i] \ } \ }'` # enforce some sane defaults PBSTOOL=${PBSTOOL:="$QMAIL/bin/pbsadd"} if [ X${NOPBSR+"true"} = X"true" ]; then unset PBSTOOL fi exec \ tcpserver -v -HRl $ME -x$QMAIL/control/qmail-imapd.cdb \ ${CONCURRENCY:+"-c$CONCURRENCY"} ${BACKLOG:+"-b$BACKLOG"} 0 imap \ /usr/local/bin/bincimap-up \ --logtype=multilog --conf=/usr/local/etc/bincimap/bincimap.conf -- \ $QMAIL/bin/auth_pop ${PBSTOOL:+"-d$PBSTOOL"} \ /usr/local/bin/bincimapd Maildir
起動
daemontools 管理下におきます。以下のように symlink しました。
# cd /var/service # ln -s /var/qmail/boot/qmail-imapd .
テスト
telnet コマンドでテストしてみます。太字は入力部分です。
% telnet localhost 143 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. *** OK Welcome to Binc IMAP Copyright (C) 2002-2004 Andreas Aardal Hanssen at 2005-03-02 14:51:03 JST 0001 LOGIN ueda hogehoge 0001 OK LOGIN completed 0002 LIST "" "%" *** LIST (\Unmarked) "/" "INBOX" 0002 OK LIST completed 0003 LOGOUT *** BYE Binc IMAP shutting down 0003 OK LOGOUT completed Connection closed by foreign host. %
こんな感じで、とりあえず動きました。
その他
mobileimap: an IMAP-based web mailer for mobile phones を見ると、「2004年1月現在、まだ日本語の検索に対応していないようです。」と書いてありますね。試してみたら確かに対応していないようです。むむ... http://lifewithbincimap.org/index.php/Main/WhatsPlannedForTheFuture を見ると、1.2.x では対応予定がないみたいですね。はよ 1.3.x を stable にしてくれないかなぁ。
*1:qmail, daemontools, ucspi-tcp/ssl の一般的な設定方法とは違うから、というだけです。Courier-IMAP の方がドキュメントは多そうですね
*2:05/2/26 に CVSup しました