dovecot

mboxからmaildir形式へ移行すべくuw-imapをdovecotへ変更してみる。
dovecotの準備
主要なコンパイルオプションはデフォルトで有効になっているので、これだけ追記。(うちでは外部からのPOP3/IMAP4は許可していないのでSSLは有効にしません)

# ./configure –with-pgsql –with-mysql
# make
# make install

インストール場所

本体:/usr/local/sbin
コンフィグ:/usr/local/etc
関連ファイル:/usr/local/libexec/dovecot

/usr/local/etc/dovecot-example.confをdovecot.confにコピーして修正。
必要な機能のコメントを解除し、pathをあわせる。

483c483
< #login_executable = /usr/libexec/dovecot/imap-login --- > login_executable = /usr/local/libexec/dovecot/imap-login
こんな感じで淡々とすすめる。
base_dir = /var/run/dovecot/
login_executable = /usr/local/libexec/dovecot/imap-login
mail_executable = /usr/local/libexec/dovecot/imap
mail_plugin_dir = /usr/local/lib/dovecot/imap
login_executable = /usr/local/libexec/dovecot/pop3-login
mail_executable = /usr/local/libexec/dovecot/pop3
mail_plugin_dir = /usr/local/lib/dovecot/pop3
mail_plugin_dir = /usr/local/lib/dovecot/lda
auth_socket_path = /var/run/dovecot/auth-master
auth_executable = /usr/local/libexec/dovecot/dovecot-auth

path以外で設定したのはこんな感じ。

protocols = imap pop3
disable_plaintext_auth = no
syslog_facility = local3
ssl_disable = yes
login_chroot = no
mail_location = maildir:~/Maildir
pop3_uidl_format = %08Xv%08Xu
mechanisms = plain login

基本的に外部からPOP3やIMAP4は飛んでこないので設定はあまあまです。
このくらいでとりあえずdovecotの設定は完了。
あとは呼べば起動します。

# /usr/local/sbin/dovecot
# netstat -an

ユーザ環境の移行
各ユーザのhomedirにMaildirを作成してchown,chmodを実施。
パーミッションは700に設定。
mb2mdを使用して/var/mail配下の各ユーザmboxをhomedir/Maildirへ展開。

# mb2md.pl -s /var/mail/ユーザ -d /export/home/ユーザ/Maildir

各ホームのMaildir/cur/に分割されて格納されている事を確認。
dovecotで読める事を確認

# telnet localhost 110
Trying 127.0.0.1…
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user ゆーざ名
+OK
pass ぱすわーど
+OK Logged in.
stat
+OK 160 886560
quit
+OK Logging out.
Connection to localhost closed by foreign host.

一応うちの環境では問題は無く変換出来たご様子。
ちょっとUIDLまわりを何も指定していなかったのでクライアントが重複受信しちゃいましたけど、まぁ、いたしかたなし。
postfixのmain.cfをmboxからmaildirへ書き換え。

home_mailbox = Maildir/

新着メールがhomedir/Maildirへ入っている事を確認。
その他SASLAUTHもSquirrelMailの認証も問題なし。
最後にmanifestを作成してSMF登録して完了。