在解释交付之前了解结果
SPF temperror 表示验证者在执行检查时遇到暂时性错误,通常涉及DNS 。这并不意味着域明确拒绝向客户端授权,也不能确定已发布的记录永久格式错误。这种区别很重要,因为永久策略重写可能是对临时解析器问题的错误响应。
检查软件可以选择接受或暂时拒绝该消息。如果由于此原因在SMTP期间拒绝, RFC 7208建议回复代码 451 以及增强状态 4.4.3(如果支持)。这些是有条件的建议,并不能证明每个接收者都会发出这些确切的代码或消息已进入重试队列。在描述发生的情况之前,先获取实际的SMTP响应和发送方状态。 RFC 7208 ,第 8.6 节
捕获评估的身份和DNS上下文
从连接地址开始, HELO 或者 邮件来自 身份、评估域、发送者参数和观察时间。 SPF并不简单地评估用户在邮件的“发件人”显示中看到的域。如果服务使用单独的信封域,则需要在该上下文中调查该域的瞬态结果,而不是自动归因于客户的可见地址。
保留准确的查询名称、记录类型、解析器或评估器上下文、响应代码、超时信息和相关应答记录。后来从管理员笔记本电脑发出的成功查询是有用的佐证,但它无法重建接收者之前的DNS状态。保留带有时间戳和范围的观察结果。发送方或接收方的DNS软件都可能出现问题,因此仅凭错误标签无法分配责任。 RFC 7208 ,第 2.3、2.4 和 8.6 节
按照发生错误的依赖关系进行操作
策略可以依赖于递归包含或重定向以及其他 DNS 引发机制。子temperror通过包含作为错误传播,而不是表现得像普通的不匹配。因此,跳过暂时不可用的供应商并宣布母公司的最终-all结果是不安全的。显示评估停止并将结果返回给父级的机制。
将暂时性故障与空的肯定答案和无效查找记帐中使用的名称错误响应分开。还要区分十期限限制和经过时间限制。 RFC 7208规定处理器应该施加一个评估时间限制,应该允许至少二十秒;如果超出,授权应该是temperror 。不要将其描述为通用固定超时或在没有证据的情况下假设特定接收器的配置。 RFC 7208 ,第 4.6.4 和 5.2 节
调查中分开三个时钟
至少存在三个相关的时间序列: DNS解析和缓存、接收方的SMTP事务以及发送系统的队列尝试。临时DNS故障可能会在几毫秒或几秒内发生,而稍后的传送尝试则需要更长的时间。让这些序列通过交易证据联系起来,而不是将它们视为一个通用的“重试”事件。
记录接收方是否接受消息、发出临时响应或在没有可用响应的情况下关闭连接。然后检查授权的发送方证据以了解实际排队重试、下次尝试时间或最终到期时间。本文没有规定特定于供应商的重试间隔。协议级临时错误不会确定特定应用程序如何排队、报告或放弃消息。
不要承诺等待一定能解决问题。反复出现的解析器问题或不可用的依赖项可能会在多次尝试中继续出现。相反,在短暂中断期间重复编辑DNS可能会引入新的缺陷,并使原始原因更难以重建。首先进行诊断,保留时间顺序,并为每个证据来源指定一名负责的操作员。
提议的验收工作表
创建一个工作表,每次有界尝试一行。包括路由所有者、消息关联标识符、评估身份、连接地址、准确的SPF快照、依赖步骤、 DNS结果、 SPF结果、接收方响应和发送队列状态。将不必要的收件人详细信息和邮件内容保留在工作副本之外。保留每个字段的来源,这样应用程序状态就不会被误认为是接收者观察。
添加不确定性列。示例包括不可用的接收方解析程序日志、较晚而非同时的DNS应答或无法可靠链接到SMTP事务的队列事件。在选择操作行动之前,审核者应该了解仍然未知的内容。不要通过假设同一时间窗口中的所有消息都遵循相同的路径来填补空白。
验收标准应区分诊断和恢复。诊断需要支持的瞬态故障及其在评估中的位置。恢复需要稍后在规定的条件下对受影响的路线进行授权观察。两者都不能自动证明每个接收者、地址族或供应商依赖性都是健康的。拟议的后续检查需要其自己的授权和保留结果;该草案没有执行此类检查。
虚构诊断:其他地方接受,此处推迟
想象一条虚构的交易路线,其客户政策包括供应商。对于一个假设的接收者,供应商策略查询超时,并且SPF评估返回temperror 。假设接收方选择临时SMTP响应,并且发送方记录排队重试。这些是本教学示例中三个独立的假设事实,而不是收集的日志或实际的提供商事件。
第二个假设的接收者成功解析供应商策略并接受消息。该观察结果并不能证明第一个接收者的报告是错误的。不同的解析器上下文和时间可能会产生不同的结果。有用的调查将比较时间戳和依赖关系,而不是认为单个成功的查找会使每个早期的失败失效。
现在假设发件人仪表板仅显示“失败”并且没有SMTP响应。调查员无法断定接收者永久拒绝了该消息或发送者重试。下一步行动是通过批准的渠道获取少量缺失的证据。在队列和SMTP记录支持之前,建议的诊断仍然是临时的。任何记录变更都不能仅由通用标签来证明。
证据和发布边界
本文提供诊断方法,而不是事件报告。该目录需要特定结果的示例,以及支持每个诊断的DNS或消息证据。这些示例、原始查询记录和观察到的恢复行为仍然开放。未执行DNS扫描、消息发送、队列操作或接收器测试。
人工审查应检查有条件的SMTP建议、评估者假设和因果归因的限制。来源适用性、原始证据、生产路线、视觉可达性和所有者发布也保持开放。在真正的纠正之前,操作员必须区分策略缺陷和临时依赖性或解析器问题,并获得任何生产变更所需的授权。