我用这个制作了邮件服务器 教程。
一切正常,但我想将 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 提供他们自己的桥梁。