メールサーバ引越し

研究室の自分のメールサーバに使っていた SunBlade 1000 が調子悪い。一見ちゃんと動いているようなんだけど、数日動かしっぱなしだと、いつの間にか止まっている。そろそろやばいのかなぁ?

んでもって、メールを受けるのも送るのもスプールするのもこのサーバなんで、止まったらメールが使えない。一応バックアップを取ったけど、またいつ止まるか分からないので、とりあえずメールだけでも引っ越すことに決定。

ということで、研究室の FreeeBSD が動いているサーバにメールを引っ越すついでに、courier-IMAP を動かしてみることにした。

インストール

とりあえず ports から mail/courier-imap と mail/procmail をインストール。

SSL対応の準備

/usr/local/etc/courier-imap/imapd.cnf.dist を imapd.cnf にコピーして、中身を研究室用に書き換え。

/usr/local/share/courier-imap/ で mkimapdcert を実行して imapd.pem を作らせる。

courier-imap 用の daemon が起動するように、/etc/rc.conf を修正。

courier_imap_imapd_ssl_enable="YES"
courier_imap_imapd_enable="YES"
courier_authdaemond_enable="YES"

Maildir 作成

自分の Home で

maildirmake Maildir

を実行すれば Maildir が作られる。

sendmail で Maildir 形式に保存するように procmail を設定

サーバ全体で使うなら /etc/mail/sendmail.mcに

FEATURE(`local_procmail')

を追加してから sendmail.cf を作りなおす。(実際は /etc/mail で最初に make すると、hostname.mc が作られるので、それを書き換えてからもう一度 make して hostname.cf を作り、確認してから make install で sendmail.cf を入れ替える。その後 sendmail の再起動すれば OK)

サーバデフォルトの profmailrc も、/usr/local/etc/procmailrc として作成する。

DEFAULT=$HOME/Maildir/new

今回は自分だけなので、sendmail.cf はそのまま。$HOME/.procmailrc に上記の内容を書き込んで、$HOME/.forward で profmail を使うように設定(/usr/local/share/example/procmail/forward をコピーしてから YOUR_LOGIN_NAME ってところを書き直せば OK)。

これで、取りあえず IMAP は使えるようになった。

メールの引越し

IMAP を使っているんで、古いサーバから新しいサーバにコピーしてもいいんだろうけど、たくさんのフォルダに分かれていて面倒なので、一気にやることにした。

mbox 形式だったなら ports に mail/mb2md ってのがあるのでそれを使う。

今回は MH 形式で管理していたので、まずはそのディレクトリを丸ごと新しいサーバにコピー。

あとは、http://www.informatik-vollmer.de/software/mh2maildir.php にある mh2maildir で一括変換。

sh mh2maildir -f -R -courier -r Mail Maidir

これで、Mail に記録されている MH 形式のメールが、フォルダの階層を保ったまま、Maildir に変換される。

新しいサーバにメールを転送するように設定

古いサーバから新しいサーバに転送するように .forward を修正。

とりあえず、これで何とかなったかな?

あと、この方法だと IMAP のパスワードが login パスワードと同じになってます。SSL を使っても不安だっていう場合は、別管理にする方法もちゃんとあるけど、ググればすぐ見つかるんで、自分で調べてくれ。
(→id:usaka:20080311で CRAM-MD5 対応の手順を書きました)