[ 标头和传送错误 ]

增强的SMTP状态代码:读取完整的诊断消息

解码增强的SMTP状态代码以及基本回复、命令、收件人和原始诊断。

由EmailAuth研究团队提供 · 3 分钟阅读

[ 要点 ]

  • 解码增强的SMTP状态代码以及基本回复、命令、收件人和原始诊断。
  • 构建有用的升级包
在此页面上

增强状态代码是结构化线索,而不是完整的事件报告。 “5.7.1”可以将调查范围缩小到安全或策略,但它无法单独识别策略所有者、受影响的路由或正确的配置更改。在整个故障排除过程中,将完整的诊断信息保留在代码旁边。

阅读所有三个组成部分

RFC 3463定义了具有类别、主题和详细信息组件的增强状态代码。该类区分成功、持续短暂失败和永久失败。主题类别区分诸如寻址、邮箱状态、路由和安全或策略等领域。细节缩小了该主题内的条件。普通的三位数SMTP响应仍然是证据的一部分。 RFC 3463.

不要将最终数字视为全局错误标识符。其含义取决于完整的增强代码和适用的注册或提供商文档。接收系统也可以在没有增强代码的情况下返回有用的散文。如果基本类和增强类看起来不一致,请保留确切的字节并调查提供程序的行为,而不是默默地重写日志。

将SMTP回复与送达报告分开

对话期间会发生SMTP回复。递送状态通知可以稍后报告结果并且可以描述多个收件人。 RFC 3464定义的字段包括最终收件人、操作、状态、远程 MTA 和诊断代码。独立读取每个接收者的块;一次失败并不能证明每个接收者都失败了。 RFC 3464第 2 节.

行动和状态回答不同的问题。 Action:失败表示报告 MTA 已停止对该收件人的尝试。状态:4.2.2 重试次数耗尽后仍能描述短暂邮箱满的原因;失败加上 4.xx 状态在 DSN 中有效,而不是不一致的SMTP回复。例如,具有这些字段的过期项目不会仅仅因为容量恢复而自动恢复。在授权任何替换之前检查实际队列。看 RFC 3464第 2.3.3 节.

人类可读的退回主题对于分类很有用,但可以省略决定性字段。尽可能获取机器可读的报告或发送日志。将报告服务器与远程服务器分开,并将报告的时间戳与失败的SMTP命令的时间戳区分开来。

读取假设的收件人块

假设发送日志记录了missing@example.test的 RCPT TO,后跟 550 5.1.1。说明性 DSN 接收者块可以包含 Final-Recipient: rfc822; missing@example.test ,操作:失败,状态:5.1.1,远程 MTA:dns; mx.example .test 和诊断代码:smtp; 550 5.1.1 无该用户。这些是发明的字段值,而不是执行的事务或完整的MIME报告。

失败的操作对于该接收者来说是最终的,而诊断则指向寻址。它没有确定该地址为何不可用或其他收件人发生了什么。从他们自己的区块和可信日志中获取这些答案。最终收件人、操作和状态是每个收件人的必填字段;远程 MTA 和诊断代码是有条件的或可选的。它们的缺席并不意味着允许发明拒绝主机或错误文本。

对于不熟悉的注册详细信息,请查阅当前的 IANA增强状态注册表 和引用的规范,然后是提供商的当前解释。 RFC 3463提供了框架,而不是每个后续代码的详尽列表。

将代码变成可检验的假设

对于寻址代码,请确认预期地址和接收系统行为。对于路由代码,请检查失败的下一跳和路由配置。对于安全或策略代码,请标识指定的需求及其所有者。避免从首选DNS更改开始,然后将每个响应解释为对其的支持。

记录一个假设、它预测的证据以及最小的授权检验。更正后的消息应与相关路线和收件人类别上的原始消息进行比较。将矛盾的结果保留为有用的证据,而不是将其强加到原始解释中。升级数据包应包括时间戳、准确响应、受影响范围和已测试的更改,并尽量减少消息内容和个人数据。代码查找是诊断的开始,而不是诊断的结束。

构建有用的升级包

  • 身份:保留消息和队列标识符、失败信封收件人和受影响的范围。
  • 时间轴:分别记录提交、失败尝试和报告到达。
  • 诊断:包括准确的SMTP回复、命令阶段和每个收件人的 DSN 字段。
  • 所有权:区分举报制度和拒绝制度,并提供证据。
  • 下一步:陈述一个可测试的原因、最小的授权检查和任何矛盾的证据。尽量减少个人数据。

[ 外卖 ]

解码增强的SMTP状态代码以及基本回复、命令、收件人和原始诊断。

[ 按角色 ]

这对您意味着什么

选择您的角色以执行后续实际步骤。

IT/邮件管理员

保留诊断结构

每个收件人字段和SMTP阶段可防止出现误导性摘要。

后续步骤

  1. 保留原始响应。
  2. 单独解析接收者块。
  3. 记录测试假设。

CISO / SecOps

最小化升级数据

支持证据应该是有用的,而不暴露不必要的内容。

后续步骤

  1. 编辑不相关的个​​人数据。
  2. 保留与安全相关的字段。
  3. 控制诊断保留。

创始人/非技术人员

询问完整诊断

熟悉的代码可能隐藏不同的业务影响。

后续步骤

  1. 请求受影响的接收者范围。
  2. 跟踪责任所有者。
  3. 避免仅代码关闭。

[ 常见问题解答 ]

常见问题

三个增强代码组件是什么?

类别、主题和细节。

最后一个数字本身有意义吗?

不。解释完整的代码及其规范或提供程序上下文。

一个 DSN 可以包含混合结果吗?

是的。单独读取每个收件人块。

一个弹跳主题就足够了吗?

通常不会。获取原始诊断和相关机器可读字段。

不一致的代码是否应该标准化?

保留不一致的基本/增强SMTP类而不重写它们。另外,当报告 MTA 在暂时原因后停止尝试时,DSN 操作:失败且状态:4.xx 有效;这并不意味着该项目仍处于排队状态。

示例 DSN 是客户工件吗?

不。字段值是假设的教学示例,而不是客户报告或执行的综合交换。

升级应该识别哪个服务器?

报告系统和远程拒绝服务器(如果已知)。

代码查找之后应该做什么?

具体的假设、有界检验以及与原始结果的比较。

[ 来源 ]

来源

  1. RFC 3463 :增强型邮件系统状态代码

    部分 §2 · §3

  2. RFC 3464 :传递状态通知的可扩展消息格式

    部分 §2 · §2.3.3

  3. RFC 5321 :简单邮件传输协议

    部分 §4.2 · §4.5.4 · §6.1

  4. IANA : SMTP增强状态代码

    部分 类别、科目和详细信息注册

[ 词汇表 ]

词汇表

增强状态代码
描述传递状态的 class.subject.detail 值。
诊断代码
可选的 DSN 字段,包含特定于传输的诊断(如果可用);不在场时不要发明一个。
最终接收者
DSN 收件人块中标识的收件人地址。

企业出处

为什么顶级金融机构和政府 退役了他们的电子邮件安全仪表板。

传统的电子邮件身份验证平台会向您出售仪表板并要求您的工程师来完成这项工作。在高风险环境中,手动监督意味着延迟执行、配置漂移和不受监控的影子域。

EmailAuth是代理电子邮件来源平台。 我们的代理人强制执行 p=reject,保持第三方发件人一致并将您的域名移至完整状态 RFC 9989 合规性、新的DMARC标准,以及人机交互审核能力。

政府 大型企业 一级金融机构

SaaS · 专用租赁 · 气隙本地部署 · BYOK 加密

知识库