我们正在使用第三方服务提供商发送交易电子邮件.我最近注意到给定接收域的失败率增加了.
发送失败并显示错误“498 No MX for example.com”.
在给定的延迟之后重试发送,然后在几次重试之后通常成功.但有时,它们会超过重试限制并永久丢弃.
我联系了提供商的支持,他们告诉我这是由于接收域声明来自不同提供商的MX.
$dig mx example.com ;; ANSWER SECTION: example.com. 859 IN MX 25 mail05.example.com. example.com. 859 IN MX 20 mail11.example.net.
他们指的是一个MX使用example.com而另一个使用example.net这一事实,这显然是不好的做法,可能导致上述错误.
这是我第一次听到这样的话,我会马上给BS打电话,但我想我会给他们怀疑的好处,听听别人对这个话题的看法.
解决方法
他们大多是错的.
拥有多个MX并不是一个坏习惯,在其他域中使用一个或多个主机名也同样不是一种坏习惯.实际上,人们常常会在自己的域中将自己的邮件服务器设置为主MX,然后将其ISP的邮件服务器作为辅助MX.
可能相关的一个微小部分是,如果其他域中的MX无法正确解析,例如如果域example.net有DNS问题,那将是一个问题.但这就是为什么你有多个MX – 如果一个失败,其他的仍然可以工作.
您应该回复提供商并将其指向RFC 5321,第5.1节.引用它有点太长了,但它的要点是,如果有多个MX,发送者必须至少尝试前两个,并且将它们放在不同的域中没有限制.