我在一台 Ubuntu 20.04 机器上设置了 Postfix。但是,我不确定在哪里必须使用子域以及域在哪里。我们分别将它们称为mail.example.com
和example.com
。
该系统是一个空客户端,发送电子邮件但不接收任何电子邮件(通过 实现inet_interfaces = loopback-only
)/etc/postfix/main.cf
。我打算[email protected]
专门从 发送消息。
- MX 记录是
@ IN MX 0 mail.example.com
。 - 两者都有 A 记录
@
并mail
指向 Postfix 服务器。 - 中提到的 TLS 证书
/etc/postfix/main.cf
指的是mail.example.com
:smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
和smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
。 - 用
smtp_generic_maps = hash:/etc/postfix/generic
I重写user@hostname
为[email protected]
。/etc/postfix/main.cf
- 我添加了
masquerade_domains = example.com
,将中/etc/postfix/main.cf
的 替换为。不知何故,这不起作用。电子邮件仍然来自发件人。mail.example.com
[email protected]
example.com
[email protected]
问题如下:
- 我必须在 MX 记录中使用
@
或吗?mail
- TLS 证书是否必须引用
mail.example.com
或example.com
? - 应该
/etc/postfix/generic
先转换user@hostname
成[email protected]
还是直接转换成[email protected]
?
答案1
目前最正确的做法是在正确的邮件服务上创建一个帐户,该帐户已完全配置为提供服务example.com
。(当然,这可以是您自己的服务器,这无所谓。)然后,在您的空主机上,您只将邮件服务器配置为智能主机,并使用 SASL 身份验证。
虽然完全可以像这样设置 Postfix(有很多手册,包括 Postfix 自己的手册),但我认为 Postfix 不适合这种用途。考虑使用nullmailer
,它非常适合那些除了发出一些系统通知外不对邮件做任何操作的系统。
如果不可能的话,请像这样设置 DNS:
example.com
MX 记录指向其正确的邮件服务。它与子域名无关。nullhost.example.com. MX 10 .
,即指向无处。这明确表明您不打算接收任何邮件[email protected]
。如果您保护空主机的 smtpd 服务不受外部连接(防火墙tcp/25
、仅监听localhost:25
等)的影响,则不需要这样做;但是,明确总是比隐含更好。- 此空主机将发送设置
example.com
为发件人域的邮件,因此其邮件必须遵守该域的 DMARC 设置。否则行为正确的接收者将丢弃其邮件。
最后一点,DMARC,可能会使事情变得相当复杂。如果它被安全设置,这意味着记录看起来像_dmarc.example.com. TXT "v=DMARC1; p=reject; pct=100; ..."
,您需要在空主机上设置 SPF 和 DKIM 签名。SPF 很简单,只需将“a:nullhost.example.com”添加到 SPF TXT 记录中。DKIM 很有挑战性,您需要创建额外的 DKIM 密钥对,选择一个选择器(nullhost
可能可以),将其公共对安装到 DNS 中nullhost._domainkey.example.com. TXT "... key data ..."
。然后直接在空主机上配置与相应私钥的签名(并使用所选的选择器),我会为此使用 opendkim。我是否提到过使用智能主机是首选方法?
还有您的问题。
- 您不是服务器(您说这个系统不应该接收任何邮件)。所以您不需要任何 TLS 服务器证书。您可以使用 TLS 客户端证书进行设置,这样当您通过 TLS 连接到智能主机或其他服务器时,您就可以出示它。但您为什么要这样做呢?
- “apex”记录
@ MX
,又名example.com. MX
,必须指向 example.com 的米愛X更换器(接收 邮件的系统[email protected]
)。它与任何子域的邮件无关。每个子域都是独立的邮件域。 - 如何设置地址重写取决于您。外界唯一能看到的就是最终结果。那么为什么要分两步来做呢?