docker-compose で Dovecot と Postfix を接続する方法

docker-compose で Dovecot と Postfix を接続する方法

これでメールサーバーを作りました チュートリアル。

すべて動作しますが、mysql、postfix、dovecot をコンテナに入れたいです。mysql イメージを使用しました。Postfix コンテナは自分で作成しました。

postfix コンテナから mysql データベースに接続する際に問題はありません。

問題はPostfixとDovecotの接続にあります

/etc/postfix/main.cf:

virtual_transport = lmtp:unix:private/dovecot-lmtp

/etc/dovecot/conf.d/10-master.conf

service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
       mode = 0600
       user = postfix
       group = postfix
   }
  #inet_listener lmtp {
    # Avoid making LMTP visible for the entire internet
    #address =
    #port =
  #}
} 

Dovecot コンテナを実行しているときに、出力が表示されます: Fatal: service(lmtp) User doesn't exist: postfix (See service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { user } } setting)

Postfix を Dovecot に接続できるようにするには、どのように設定を変更すればよいですか?

答え1

私も似たようなものを設定しました。

関連するドキュメントはここにあります。https://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL

MDA のホスト名を使用してコンテナーに接続してもうまくいかなかったので、dovecot に静的 IP を割り当てます。

dovecot に IP 経由の lmtp 接続を listen させたいので、その部分はコメントアウトしません。また、unix ソケットの設定をそのままにしておくと動作しないことがわかりましたが、いずれにしても必要ではないようですので、問題ありません :)

10-master のファイル

service lmtp {
  inet_listener lmtp {
    port = 24
  }
}

/etc/postfix/main.cf

virtual_transport = lmtp:inet:127.20.0.201:24

/etc/postfix/master.cf でも参照していますが、認証に dovecot を使用していないようなので、そこで設定する必要はないかもしれません。

また、lmtp は暗号化されていないので、postfix と dovecot に独自のブリッジを提供することを検討してください。

関連情報