最近帮一位过世的同事重建了他的网站,很自然地,这样的域名并不需要收发邮件,那么如何告诉互联网上的其他服务器这件事呢?
RFC 7505 推荐的做法是创建一条 null MX 记录:
@ IN MX 0 .
在发信方看来,这表示该域名明确告知不存在可以收信的服务器(收件服务器是.
)。Postfix对此的处理是直接将邮件弹回发件人,例如日志中会体现为:
postfix/smtp[83708]: A97D63F0CA: to=<xxx@example.net>, relay=none, delay=2.2, delays=2.1/0.05/0.02/0, dsn=5.1.0, status=bounced (Domain example.net does not accept mail (nullMX))
退信也会明确告知这一点。
SPF记录比较简单:
@ IN TXT "v=spf1 -all"
这表示一条SPF1记录,其策略是拒绝所有(来自当前域名)的邮件。
*._domainkey IN TXT "v=DKIM1; p=;"
这表示对于所有 _domainkey
均返回 v=DKIM1; p=;
。其含义是此 DKIM1 key 已经注销。
有了 SPF 和 DKIM 记录我们就可以要求 DMARC 拒绝这些邮件了。
v=DMARC1; p=reject; aspf=s; adkim=s;
这表示拒绝(p=reject
)所有不符合SPF(aspf=s
)或DKIM(adkim=s
)的邮件。
此处未指定 rua
。出于研究目的,可以设置一个邮件地址用来分析数据。
在 BIND 中添加如下记录(将 example.net
替换为实际的域名):
$ORIGIN example.net. @ 3600 IN MX 0 . @ 3600 IN TXT "v=spf1 -all" _dmarc 3600 IN TXT "v=DMARC1; p=reject; aspf=s; adkim=s;" *._domainkey 3600 IN TXT "v=DKIM1; p=;"