如何准确解析smtp消息状态代码(DSN)?

时间:2009-08-06 13:53:07

标签: email email-integration bounce

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

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

  

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

     

新状态代码的语法   定义为:

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

空格字符和注释   不允许进入状态 -
  码。每个数字子代码   状态代码必须表达为
  没有前导零位数。

RFC上面的引用说明了一件事,但是反弹管理中的主要工具下面的文字说明了一些不同的东西,我可以从中获得标准状态代码的良好来源:

  

退货代码说明
  0未确定 - (即收件人答复)
  10 HARD BOUNCE - (即用户未知)
  20 SOFT BOUNCE - 总则
  21 SOFT BOUNCE - Dns失败
  22 SOFT BOUNCE - 邮箱全年
  23 SOFT BOUNCE - 消息太大
  30 BOUNCE - 没有电子邮件地址。非常罕见!
  40 GENERAL BOUNCE
  50邮件 - 一般
  51邮件块 - 已知的垃圾邮件发送者
  52邮件块 - 检测到垃圾邮件
  53邮件块 - 检测到附件
  54邮件块 - 继电器被拒绝
  60 AUTO REPLY - (即离开办公室)
  70 TRANSIENT BOUNCE
  80订阅请求
  90取消订阅/删除请求
  100挑战 - 回应

1 个答案:

答案 0 :(得分:2)

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