如何在 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 連接,因此您希望取消註解該位元。我發現如果你將 unix 套接字的配置留在那裡,它就不起作用,這並不重要,因為聽起來你無論如何都不想要它:)

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

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 提供自己的橋樑。

相關內容