代码之家  ›  专栏  ›  技术社区  ›  Geo

如何准确解析SMTP邮件状态码(DSN)?

  •  1
  • Geo  · 技术社区  · 15 年前

    RFC1893声明状态代码将采用以下格式,您可以阅读更多 here 是的。

    但是我们的bounce管理系统很难解析来自bounce消息的错误状态代码。我们可以获取原始消息,但根据电子邮件服务器的不同,代码将出现在不同的位置。对于如何解析此类消息以获得更好的结果,是否有任何规则。我们不是在寻找100%的解决方案,而是至少80%。

    本文档定义了一组新的状态代码,用于报告邮件系统 条件。这些状态代码用于媒体和 独立于语言的状态报告。它们不是用来 系统特定诊断。

    新状态码的语法 定义为:

          status-code = class "." subject "." detail
          class = "2"/"4"/"5"
          subject = 1*3digit
          detail = 1*3digit
    

    空白字符和注释 在状态中不允许-
    代码。内的每个数字子代码 必须表示状态代码
    没有前导零位。

    上面来自RFC的引用说明了一件事,但是下面来自Bounce Management的一个领先工具的文本说明了另一件事,在这里我可以获得标准状态代码的良好来源:

    返回代码说明
    0未确定(即收件人答复)
    10硬弹跳(即用户未知)
    20软弹跳-概述
    21软弹跳-DNS故障
    22软弹跳-邮箱已满
    23软弹跳-消息太大
    30弹跳-没有电子邮件地址。非常罕见!
    40一般弹跳
    50邮箱-概述
    51邮箱-已知垃圾邮件发送者
    52邮件阻止-检测到垃圾邮件
    53邮件阻止-检测到附件
    54邮件阻塞-中继被拒绝
    60自动回复(即外出)
    70瞬时弹跳
    80订阅请求
    90取消订阅/删除请求
    100挑战-回应

    1 回复  |  直到 14 年前
        1
  •  2
  •   james.garriss Pavel    12 年前

    我不确定这是一个完整的答案,但是 this algorithm for detecting bounces 可能有用。