PostfixAdmin

Postfix, Dovecot and MySQL

Postfix と Dovecot を使って、メールサーバーを運用しているのだが、うちは構成が少し変則的で、メール送信サーバー (SMTP) とメール受信サーバー (IMAP/POP3) が分離している。最終的なメールの配送は Dovecot の LMTP デーモンに頼っているのだが、エイリアスにメールが配送されないという問題が発覚した。 別にバグでも何でもなく、ただの構成ミスである。Dovecot の仮想メールボックス機能を使ってメールアドレスを管理しているのだが、当初、Postfix の送信サーバーと Dovecot の受信サーバーは同居していたので、ローカルの配送は、Postfix の Virtual Transport に任せていた。この時点では、エイリアスの処理も問題なかった。 最近、サーバーの移転を行ったのにあわせて、送信サーバーと受信サーバーの分離を行ったのだが、これは、ローカル配送に Dovecot の LMTP デーモンが使えることがわかったからである。で、何も考えずに移行して嵌まった、と。 アドレス管理のバックエンドに MySQL を使い、PostfixAdmin で Web から管理していたのだが、それ自体はまあついで。問題は、LMTP に配送を移したことで、Postfix の Virtual Transport が解釈されなくなってしまったことにある。別ソフトなんだから、当たり前ですな。そのため、MySQL で管理していたエイリアス情報が参照されなくなってしまい、未達になっていた、と。 多分、色んな解決法があるんでしょうけど、バックエンドに MySQL を使っている私の場合は、Dovecot のユーザー情報取得部分に手を入れることで、部分的に解決した。具体的には、ユーザー情報を MySQL から取得するクエリー文を以下のように修正しただけ。 sql user_query = SELECT concat('/var/mail/', maildir) as mail, concat('*:bytes=', quota) as quota_rule, 998 as uid, 8 as gid FROM mailbox WHERE active = '1' AND username = (SELECT goto FROM alias WHERE (address = '%u' AND alias.
Read more