这是我的情况。
foo.internal.domain.ltd
例如,我们有内部网络,其中包含许多二级子域。这些子域可能有也可能没有具有 A 类 IP 的公共 DNS 记录。
然后,我们有一个充当代理的子域 - proxy.internal.domain.ltd
。它具有公共 IP 地址和以下 DNS 记录:A 记录 - IN A <IPv4 of the VM>
MX 记录 - IN MX 10 proxy.internal.domain.ltd.
TXT 记录 - `IN TXT "v=spf1 a mx ip4: ~all" DMARC 记录 -
_dmarc.proxy.internal.domain.ltd IN TXT v=DMARC1; p=none; rua=mailto:[email protected]; pct=100; adkim=r; aspf=r; fo=0"
所有邮件发送均由 Postfix 处理,无论是来自代理还是代理服务器。
是否可以同时启用 SPF 和 DMARC ,并以为发件人proxy.internal.domain.ltd
发送邮件?foo.internal.domain.ltd
[email protected]
发送到 Gmail 会导致一些邮件被退回,并出现以下错误:
Host or domain name not found. Name service error for name=foo.internal.domain.ltd type=A: Host not found
和
Our system has detected that this message is 550-5.7.1 likely unsolicited mail
如果通过(例如,不使用测试邮件,而是使用合法模板),它会被标记为垃圾邮件,尽管 SPF 和 DMARC 都通过了。
我们的公共 IP 范围未被列入任何地方的黑名单。
如果在这种情况下同时使用 SPF 和 DMARC 不起作用,那么仅使用 SPF(或-all
)是否~all
足以防止第三方可能的欺骗和来自 Google 的退回?
答案1
如果您想向世界各地发送邮件,您必须确保收件人可以查找您使用的名称;更具体地说:从地址的域部分找出接受该域邮件的位置。
在 SMTP 中使用域名时,只允许使用可解析的完全合格域名 (FQDN)。换言之,允许使用可以解析为 MX RR 或地址(即 A 或 AAAA)RR(如第 5 节所述)的名称,以及其目标可以解析为 MX 或地址 RR 的 CNAME RR。
现在,根据您管理 DNS 的方式,外部收件人看到的内容不一定需要与您内部使用的内容相匹配(关键字“split”可能有助于研究常见配置)。但无论如何,返回地址必须是可解析的(可能指向您的中继作为主 MX)。
仔细权衡发布所有内部使用的名称与简单地让中继在转发时规范化地址(也许[email protected]
不需要[email protected]
公开出现,因为[email protected]
对两者来说都足够了?)