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 配下となってしまいます(右の図)。