2003/8/17
最終更新 2004/1/9
バージョン imap-2002d
OS Red Hat Linux 6.2J
公式サイト http://www.washington.edu/imap/
ダウンロード ftp://ftp.cac.washington.edu/mail/

IMAP4サーバです。qmailのMaildir形式ならCourier-IMAPがいいかもしれませんが、sendmailやPostfixなどのMailbox形式には対応していません。そこでUW IMAPです。UW IMAPはIMAP関連のRFCの著書であるMark Crispin氏が開発しているため、リファレンスインプリメンテーション的な位置づけをももつIMAPサーバです。最近のRed Hat Linuxでは標準となっています。

インストールは通常のTARボールインストール手順が使えず、少々面倒です。ここではソースコードからのインストール方法を解説していますが、RPMが使えるのであれば、RPMインストールのほうが簡単で良いでしょう。

コンパイル

$ tar xvfz imap-2002d.tar.Z
$ cd imap-2002d

makeの引数にシステム名を書きます。ここで指定できるシステム名はMakefile中に説明がありますので参照してください。

$ make slx

これでコンパイルまで完了です。ここからは手作業でインストールしなければなりません。

インストール

imapdを適当なディレクトリにコピーします。ipop2d、ipop3dも必要ならコピーします。すでにPOPサーバが導入済みであれば必要ないでしょう。

$ su
# cp imapd/imapd /usr/local/sbin/
# cp ipopd/ipop2d /usr/local/sbin/
# cp ipopd/ipop3d /usr/local/sbin/

/etc/inetd.confに次の行を追加します。今回少し古いOSに導入したためinetdですが、最近のOSではxinetdが使われていて、この説明とは手順が異なる場合がありますので注意してください。

pop-2 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/ipop3d
imap  stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/imapd

inetdを再起動します。

# kill -HUP `cat /var/run/inetd.pid`

設定調整

このままですと、ホームディレクトリがそのままメールボックスと解釈されてしまい、いやな感じです。そこで、/etc/c-client.cfというファイルを作ります。内容は以下の通りです。

I accept the risk for IMAP toolkit 4.1.
set mail-subdirectory mail

これによって~/mailがメールボックスとなります。1行目の記述は必須です。イヤな感じですが、他に良い回避策が無さそうです。

これでインストール完了なのですが、私の環境ではなぜか認証に失敗してしまいました。そこでCRAM-MD5認証を導入しました。というか、最初からセキュリティ的にそのほうが望ましいのでいいのですが。CRAM-MD5を使うには、/etc/cram-md5.pwdファイルにユーザー名とパスワードをタブで区切って記述しておきます。

user    PASSWORD

一般ユーザーがこのファイルを読むことのないように、パーミッション600にセットします。

# chmod 600 /etc/cram-md5.pwd

以上で完了です。

mbx形式にする

(2004/1/9加筆)

メールの数が増えてきたら急にやたら重くなりました。mbox形式が原因でしょう。UW IMAPでは独自のmbx形式というのがあります。これに変えてみます。

まず、/etc/c-client.cfにset new-folder-format mbxと記述します。この設定により、新規に作成するフォルダがmbx形式となります。

I accept the risk for IMAP toolkit 4.1.
set mail-subdirectory mail
set new-folder-format mbx

これでmbx形式のフォルダを作って、メーラーを使って旧フォルダからメールを移動させれば、サクッと軽くなります。

ところで、従来のmbox形式の場合、procmailを使ってフォルダの自動振り分けをする場合、レシピの設定は、

:0
* ^X-Spam-Flag: Yes
mail/spam

のような形でよかったのですが、mbx形式の場合はこれではうまくいきません。そこで、IMAPサーバのソースアーカイブに含まれているdmailというプログラムを使います。

上記手順に従ってIMAPサーバをインストールしていれば、すでソースツリー上にコンパイルされていると思うので、これをインストールします。

# cp dmail/dmail /usr/local/bin/

そして、レシピの設定を次のような形に変更します。

:0
* ^X-Spam-Flag: Yes
| /usr/local/bin/dmail +spam