如何在 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 提供他们自己的桥梁。

相关内容