Postfix 默认使用端口 25、465 和 587。在我的配置中,我使用smtpd_use_tls=yes
postfix 中的选项启用了 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
(您或许可以使用$myhostname
inmydomain
和myorigin
)。
对于证书,我只使用主域名的证书:
smtpd_tls_cert_file = fullchain.pem
smtpd_tls_key_file = privkey.pem
smtpd_tls_security_level = may
我不太明白邮件系统的 Nginx 代理文档。它似乎进行了身份验证,但没有定义目的地,所以我不知道它如何工作。