通过代理使用postfix,应该如何配置?

通过代理使用postfix,应该如何配置?

Postfix 默认使用端口 25、465 和 587。在我的配置中,我使用smtpd_use_tls=yespostfix 中的选项启用了 TLS 加密main.cf。据我所知,这使得所有 smtp 通信都加密。

由于 postfix 仅接受 1 个证书并且不支持信噪比,我想使用 nginx 作为代理,让 nginx 根据 SNI 和域名决定加密,而不是由 postfix 决定。

我对在 Postfix 中需要做的更改感到困惑,非常希望得到您的帮助。以下是我的问题:

1) 当我通过服务器发送电子邮件时,我使用端口 25。但是接收邮件怎么办?我是否应该更改 Postfix 使用的所有这些端口(用 nginx 替换它们)?还是仅端口 25 就足够了?

2)当我使用 nginx 作为代理时,是否应该禁用 postfix 中的加密?如果我正确理解了整个过程,那么 nginx 和 postfix 之间的内部代理通信不需要加密,因此一旦我开始使用该代理配置该代理,就应该禁用加密smtpd_use_tls=no,对吗?

如果您需要任何其他信息,请询问。

答案1

邮件服务器需要验证每个向其发送电子邮件的服务器的 PTR,因此您尝试执行的操作无论如何都不会奏效。由于有多个域名,您无法使用代理。

在 postfix 中,你可以定义所有可以接收电子邮件的名称:

mydestination=$myhostname, example.com, other-example.com, yet-another.com

但是,要发送邮件,您必须确保$myhostname有权向其他域名发送电子邮件。我确保以下名称设置为相同的值:

myhostname = example.com                                                          
mydomain = example.com                                                            
myorigin = example.com                                                            

(您或许可以使用$myhostnameinmydomainmyorigin)。

对于证书,我只使用主域名的证书:

smtpd_tls_cert_file = fullchain.pem
smtpd_tls_key_file = privkey.pem
smtpd_tls_security_level = may

我不太明白邮件系统的 Nginx 代理文档。它似乎进行了身份验证,但没有定义目的地,所以我不知道它如何工作。

相关内容