如果较低优先级的邮件服务器仅提供代码 450,重试时发送服务器是否会使用较高优先级的服务器?

Pau*_*aul 7 smtp

我有一个备份邮件服务器吃掉了一堆消息,我只想配置一个简单的服务器来发送450所有消息。

但是,我不确定这是一个好主意,因为如果重试时的发送服务器不尝试发送到更高优先级的服务器,则消息永远无法传递。

我在 RFC 中没有找到任何与此相关的内容,但是服务器是否会在更高优先级的服务器上重试,还是在响应 的同一台服务器上永远尝试450

HBr*_*ijn 9

当 SMTP 传送失败(没有收到永久5xy否定完成 SMTP 响应)并且没有定义备用/备份 MX 时,IIRC RFC将其留给发件人实现是否再次尝试传送以及后续传送尝试的频率和持续时间制成。标准还让发送者实现自行决定是否以及多快将临时传递延迟通知返回给原始发送者和/或以多快的速度返回永久传递失败错误通知。

当为收件人域定义了多个MX记录时,对于每次投递尝试,符合标准的发件人应尝试投递到所有 MX 记录,一个接着一个,并尊重其优先级,直到其中一个 MX 接受邮件(发件人收到2xx肯定的完成 SMTP 响应),或者一个 MX 拒绝邮件(带有永久5xy否定的完成 SMTP 响应),或者直到联系了所有 MX。
当没有(主和/或备份)MX 记录永久接受或拒绝您的域的邮件消息时,我希望在不存在备用 MX 记录的情况下遵循相同的、特定于发件人实现的失败路径。换句话说:“发送者可以将消息排队以供以后尝试发送或放弃”

做或不做

您自己控制下的多个 MX 记录和备份邮件服务器的整个概念是您可以控制它,并且不必依赖原始发件人的排队和重试策略,或者不依赖原始发件人的排队和重试策略。

当你不想要这种控制时;当您不希望备份 MX 对邮件进行排队,但希望将排队和传送重试留给发件人时,只需根本不配置备份 MX 记录即可。这应该与设置指向仅生成错误且实际上不会接受您的电子邮件并将其排队的服务器的备份 MX 具有相同的效果(如果不是更好的话)。

恕我直言,备份 MX 的预期目的

当您的主服务器因停机或计划维护而脱机和/或变得不可用时,RFC 和发件人正确实施 SMTP 协议应确保将发送到您的域的电子邮件发送到您的备份MX,邮件将被接受并排队,直到(计划的)中断结束为止。
您的备份邮件服务器(而不是发件人)将控制是否/何时将邮件传递延迟/失败通知发送给原始发件人。
一旦中断结束并且您的主邮件服务器和邮箱再次联机,您可以刷新备份 MX 上的队列并(几乎)立即接收所有排队的邮件。以ETRN SMTP 命令为例。