WU-IMAP を利用して IMAP4 サーバを Solaris 上で運用していますが,WU-IMAP はメールボックスが mbox 形式のため,メールが溜まり動作が目に見えて遅くなってきました。
マシンの置き換えをすることになったので,IMAP4 サーバも動作が速いと評判の Courier-IMAP に変更してみました。ちなみに OS も Solaris から Red Hat Enterprise Linux ES release 3 に変更しました。
以下,Courier-IMAP のインストール手順です。
事前準備
競合をさけるため,Red Hat Linux ES3 にインストール済みの WU-IMAP を削除します。ちなみに今回導入したマシンには,以下のパッケージがインストールされていました。
次に,Postfix のメールボックス形式を Maildir に変更します。/etc/postfix/main.cf にて以下のエントリを有効にします。
home_mailbox = Maildir/
また,mail_spool_directory エントリが有効になっている場合は,これを無効にします。
#mail_spool_directory = /var/mail #mail_spool_directory = /var/spool/mail
Courier-IMAP は直接 rpm パッケージを作成できるので,「Courier FAQ に書かれている rpm の作り方」を参考にして rpm の作成環境を用意します。
$ cd 〜 $ mkdir rpm $ mkdir rpm/SOURCES $ mkdir rpm/SPECS $ mkdir rpm/BUILD $ mkdir rpm/SRPMS $ mkdir rpm/RPMS $ mkdir rpm/RPMS/i386 $ echo "%_topdir $HOME/rpm" >> .rpmmacros
インストール
Courier-IMAP 4.0 からは,事前に Courier Authentication Library をインストールする必要があるので,ソースコードをダウンロードして rpm を作成します。
$ cd rpm/SOURCES $ mv 〜/courier-authlib-0.56.tar.bz2 . $ rpmbuild -ta courier-authlib-0.56.tar.bz2
今回は通常のログイン認証のみを考えているので,作成した rpm パッケージのうち courier-authlib と courier-authlib-devel だけをインストールしました。
$ cd 〜/rpm/RPMS/i386
$ ls
courier-authlib-0.56-1.3ES.i386.rpm
courier-authlib-debuginfo-0.56-1.3ES.i386.rpm
courier-authlib-devel-0.56-1.3ES.i386.rpm
courier-authlib-ldap-0.56-1.3ES.i386.rpm
courier-authlib-mysql-0.56-1.3ES.i386.rpm
courier-authlib-pgsql-0.56-1.3ES.i386.rpm
courier-authlib-pipe-0.56-1.3ES.i386.rpm
courier-authlib-userdb-0.56-1.3ES.i386.rpm
$ su
# rpm -i courier-authlib-0.56-1.3ES.i386.rpm
courier-authlib-devel-0.56-1.3ES.i386.rpm
続いて Courier-IMAP の rpm パッケージを作成するため,ソースコードをダウンロードします。Courier-IMAP は,サーバによる検索機能へ日本語文字コードを追加するため,spec ファイルを修正してから rpm パッケージを作成します。まず,ソースコードを展開して spec ファイルをエディタで開きます。
$ cd 〜/rpm/SOURCES $ mv 〜/courier-imap-4.0.3.tar.bz2 . $ bzcat courier-imap-4.0.3.tar.bz2 | tar xvf - $ cd courier-imap-4.0.3 $ vi courier-imap.spec
spec ファイル中で,文字コード指定をしているオプションに iso-2022-jp を追加(青字)して保存します。
%setup -q
%if %(test '%{xflags}' = '%%{xflags}' && echo 1 || echo 0)
%define xflags --enable-unicode=iso-2022-jp,iso-8859-1,utf-8
%endif
%configure \
--with-redhat \
%{?xflags: %{xflags}}
変更した spec ファイルを SPECS ディレクトリへコピーして,rpm パッケージを作成します。
$ cp courier-imap.spec 〜/rpm/SPECS/ $ cd 〜/rpm/SPECS $ rpmbuild -ba courier-imap.spec
作成した Courier-IMAP の rpm パッケージをインストールします。
$ cd 〜/rpm/RPMS/i386 $ ls courier-imap-4.0.3-1.3ES.i386.rpm courier-imap-debuginfo-4.0.3-1.3ES.i386.rpm $ su # rpm -i courier-imap-4.0.3-1.3ES.i386.rpm
起動
rpm パッケージを作成して Courier Authentication Library,Courier-IMAP をインストールすると,自動起動スクリプトも一緒にインストールされるので,以下のコマンドで起動します(OS 再起動時には自動起動します)。必要であれば,chkconfig コマンドを使ってランレベル等を変更します。
$ su # /etc/init.d/courier-authlib start # /etc/init.d/courier-imap start
マシン性能もあるかもしれませんが,WU-IMAP から Courier-IMAP に変更したら期待通り応答速度が大幅に速くなりましたが,気に入らないところも。WU-IMAP では INBOX と同じレベルにフォルダを作成できたのですが(左の図),Courier-IMAP ではサブフォルダが全て INBOX 配下となってしまいます(右の図)。

