作弊条:如何明确告知互联网某个域名不会收发邮件

作弊条:如何明确告知互联网某个域名不会收发邮件

最近帮一位过世的同事重建了他的网站,很自然地,这样的域名并不需要收发邮件,那么如何告诉互联网上的其他服务器这件事呢?

MX记录

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记录

SPF记录比较简单:

@ IN TXT "v=spf1 -all"

这表示一条SPF1记录,其策略是拒绝所有(来自当前域名)的邮件。

DKIM记录

*._domainkey IN TXT "v=DKIM1; p=;"

这表示对于所有 _domainkey 均返回 v=DKIM1; p=;。其含义是此 DKIM1 key 已经注销。

DMARC记录

有了 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=;"
notes/mail/null_mx.txt · 最后更改: 2023/07/01 07:44