TenForward

技術ブログ。はてなダイアリーから移転しました

dovecot + ldap

Software Design 8 月号postfix の特集で,postfix + dovecot + openldap で認証情報を一元管理なんて記事があって,手元でやっていることに似ているので読んでいましたが,もうちょっと工夫すれば,もう少し美しく(これは主観ですが ^^;)設定が可能だなと思って読んでました.

36ページに「Dovecotのメールボックス指定」というコラムがありますが,その中に

Dovecotのメールボックスの形式はdovecot.confの「default_mail_env」で決まります.そのためユーザルックアップに LDAP を使用した場合,返ってきたメールボックスの値に自動的に「/Maildir/」を付加します.

とあります*1

この記事では imapMailDir としてホームディレクトリ (的なディレクトリ) を指定し,これに default_mail_env の値を連結させて (MAIL環境変数を空にして実現),メールボックスの場所を決定しています.

LDAPを使用した場合にメールボックスの値が default_mail_env に影響されるのは,dovecot-ldap.conf で MAIL 環境変数の値を指定しない場合で,これを指定すれば,別に自動的に値が付加されることはないはずです.

なので postfixdovecot で,LDAP の同じ属性をメールボックスの値として指定出来るはずです.

ただし,本文中の LDAPスキーマでは,確かに同じ属性をメールボックスの値として使うとマズそうなので,そういうコラムになっていると思いますが,aliasAccount という objectClass にホームディレクトリを表す属性を追加すれば,ホームディレクトリとメールボックスの属性を組み合わせることで,「自動的に Maildir を付加」することなく,postfixdovecot で同じ属性を使用することが可能です)).

例えば,

user_attrs = uid,homeDirectory,mailbox,,,

のように指定すると homeDirectory の値と mailbox の値を連結した値がメールボックスの値となります*2LDAPを使用しないシステムユーザに関しては default_mail_env を使用するように,記事の通り "maildir:~/Maildir/" を指定しておけば良いでしょう.

最近は user_attrs の書式に新しいものが加わったようで,

user_attrs = homeDirectory=home,mailbox=mail

なんて書き方も出来るみたいです.

この辺りは,Plamo Linux で OpenLDAP + postfix + dovecot 環境を構築したときのメモ にもう少し詳しく書いてます.

*1:ちなみにメールボックスの形式は明示的に指定しない場合は,指定された場所を自動的に調べてmboxかMaildirかを判断します.

*2:postfixは "virtual_mailbox_base" の値を設定し mailbox属性の値と連結させます