3 位数字和点分 SMTP 错误代码之间有什么区别?

3 位数字和点分 SMTP 错误代码之间有什么区别?

查找 SMTP 错误代码时,我有时会看到“550”或“5.5.0”。有时点代码中的数字会有所不同。

我发现数字代码定义在RFC 821以及RFC 3463

这仅仅是对同一事物的不同符号,还是这些是不同的?如果它们不同,协议的哪些部分负责返回每个代码,以及为什么代码不同?

答案1

前三位数字“550”是 SMTP 协议所必需的代码。这用于在 SMTP 对话期间处理错误、成功或失败。

带点的版本是所谓的扩展返回代码。在此代码中,您可以为人类或自动脚本指定更详细的响应。但它们对于 SMTP 服务器的工作来说并不是必需的。

但是(当您使用扩展错误代码时)您需要的是数字错误代码后跟一个点号。而不是相反。并且不仅仅是没有数字的扩展错误代码。

值不必相等,但必须匹配。因此,您可以得到“554 5.7.1 服务不可用”。两者必须以 5 开头,但最后一部分不必相等。

答案2

RFC 3463 的概述提供了一个很好的答案 - 点号是现代标准,直数字响应代码是传统标准。编辑:“传统”的措辞不当,因为旧代码对于协议信号传输仍然是必要的,但没有提供新代码的细节。

需要一种标准的机制来报告邮件系统错误,其内容要比 SMTP 提供的有限集合和邮件消息中发送的系统特定文本描述更加丰富。迫切需要一种丰富的机器可读、独立于人类语言的状态代码,用于传递状态通知。本文档为此目的提出了一组新的状态代码。

相关内容