ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × 目次 Postfix + dovecot2で大文字を含むローカルユーザーにメールを送る 環境 Postfixの設定 dovecotの設定 問題点 参考サイト Postfix + dovecot2で大文字を含むローカルユーザーにメールを送る Postfixはローカルユーザー名を小文字化して扱うため、大文字を含むユーザーへのメール配送が出来ないのはよく知られた事実だ(Userをuserとしてpasswdを見るので「userはいない」という結果になる)。 そんなPostfixの事実はどうあれ、大文字を含むローカルユーザーが存在するのも事実であって、メールが送られないのは非常によろしくない。というか自分のアカウントの事なんですけどね。 要するにPostfixでローカルユーザーもcase-sensitiveで扱おうというお話。以上、前置き終わり。 環境 FreeBSD 9.1-RELEASE-p3 Postfix 2.10.0 dovecot 2.2.2 Postfixの設定 ローカル配送エージェント(LDA)にdovecotを使うようにする。この際、pipeでユーザー名を小文字化しないようflagsにはuを付けない。 |h master.cfの最後に追加 dovecot-cs unix - n n - - pipe flags=DR user=dovecot:dovecot argv=/usr/local/libexec/dovecot/dovecot-lda -f ${sender} -d ${user} |h main.cfに追加 local_transport = dovecot-cs dovecot-cs_destination_recipient_limit = 1 local_recipient_mapsは特に弄らなくても問題ないっぽい。 dovecotの設定 dovecotをrootで動かす事になるので、セキュリティリスクに注意。本当はLMTPを使うのが最適解。詳細はLDA - Dovecot WikのMultiple UIDsを参照の事。 10-auth.conf auth_username_format = (空) 今回の最大のハマりポイント。 dovecotはcase-sensitiveと言われており確かにその通りなんだけど、2.1.0からデフォルトではユーザー名を小文字化するようになった。2.1.0のリリースノートに下記の一文がある。 http://www.dovecot.org/list/dovecot-news/2012-February/000213.html * auth_username_format default changed to %Lu. If you really want case sensitive usernames, set it back to empty. というわけで、大文字小文字を区別するにはauth_username_formatを空にしてやる必要がある。 dovecot-ldaのパーミッションを変更。 chown root:dovecot /usr/local/libexec/dovecot/dovecot-lda chmod /usr/local/libexec/dovecot/dovecot-lda 後はPostfix, dovecot共に設定を読み込み直せばローカルユーザーもcase-sensitiveで扱われるようになるハズ。 問題点 local_transportを置き換えるため、/etc/aliasesの設定が無視されるようになる。(エイリアスの解決はPostfixのlocalで行われるため。) うーむ、これはちょっと困った。 参考サイト LDA - Dovecot Wiki LDA/Postfix - Dovecot Wiki Postfix manual - pipe(8) freebsd/postfix/case-sensitive_local_delivery.txt 最終更新: 2020-12-03 19:36by Decomo