dovecotの認証にmysqlを使った時、ログインのクエリを1つにする
メールサーバ立てるぞ。
環境
dovecot --version 2.2.18
dovecotというimapサーバの認証にmysqlを使う場合、そのままだとpasswordとユーザ名を取得するクエリを別々で投げるんだけど、設定すれば1クエリで押さまるらしい。
http://www.dovecot.jp/doc/dovecot-sql-example.conf, http://www.dovecot.jp/wiki/UserDatabase.Prefetch.txt にある翻訳されてる情報は1系だけどは2系とほとんど同じみたい。
/etc/dovecot/conf.d/auth-sql.conf.ext
userdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext }
をアンコメントして,
password_query のgid, home, uidというcolun_nameにuserfhdb_というプレフィックスをつけておしまし。
before
SELECT name as user, domain, password, CONCAT("/home/virtual/", dir) as home, '5000' as uid, '5000' as gid FROM anonymous_mailboxes WHERE name = 'koji' AND domain = 'hoge.com' SELECT CONCAT("/home/virtual/", dir) as home, '5000' as uid, '5000' as gid FROM anonymous_mailboxes WHERE name = 'koji' AND domain = 'hoge.com'
after
SELECT name as user, domain, password, CONCAT("/home/virtual/", dir) as userdb_home, '5000' as userdb_uid, '5000' as userdb_gid FROM anonymous_mailboxes WHERE name = 'koji' AND domain = 'hoge.com'
になりました。
次はクォーターあたりやります。