跳到主要内容

附录 B. 与早期规范的差异

本附录列出了 Internet Message Format 相对于早期规范所作的变更, 具体即 [RFC0822], [RFC1123] 和 [RFC2822]. 下面标有星号 (*) 的条目出现在本文档第 4 章中, 因此已不能再用于生成消息.

以下是从 [RFC0822] 和 [RFC1123] 到 [RFC2822] 的变更中在本规范里保留的部分:

  1. 允许在 phrase 的废弃形式中出现句点.
  2. ABNF 移出本文档, 现收录于 [RFC5234].
  3. 年份允许使用四位或更多位数字.
  4. 明确规定了头部字段的排序 (及无排序要求).
  5. 移除了 Encrypted 头部字段.
  6. 明确允许 "-0000" 时区并给出其含义.
  7. 并非在每个记号之间都允许折叠空白.
  8. 移除了对收件目的地 (destinations) 的要求.
  9. 重新定义了转发 (forwarding) 与重发 (resending).
  10. 不再专门列出扩展头部字段.
  11. 移除了 ASCII 0 (null).*
  12. 折叠续行不得只包含空白.*
  13. 不允许在日期中随意插入注释.*
  14. 不允许非数字时区.*
  15. 不允许两位年份.*
  16. 三位年份会被解释, 但不允许用于生成消息.*
  17. 不允许地址中的路由 (routes).*
  18. 不允许在 local-part 和 domain 中出现 CFWS.*
  19. 不允许地址列表中的空成员.*
  20. 不允许在字段名与冒号之间出现折叠空白.*
  21. 不允许在字段名与冒号之间出现注释.
  22. 收紧了 in-reply-to 和 references 的语法.*
  23. 不允许在 msg-id 中出现 CFWS.*
  24. 收紧了 resent 字段的语义, 仅作为信息性字段使用.
  25. 不允许 Resent-Reply-To.*
  26. 字段不得多次出现 (resent 和 received 字段除外).*
  27. 不允许随意出现的 CR 和 LF.*
  28. 规定了行长度限制.
  29. 更明确地规定了 Bcc.

以下是对 [RFC2822] 的变更:

  1. 修正了各类排版/语法错误, 并作了澄清.
  2. 全文将 "standard" 改为 "document" 或 "specification".
  3. 区分了 "header field" (头部字段) 与 "header section" (头部段).
  4. 从 ctext, qtext, dtext 和 unstructured 中移除了 NO-WS-CTL.*
  5. 将关于 specials 的讨论移到 "Atom" 一节. 将相关文本移到 "Overall message syntax" 一节.
  6. 简化了 CFWS 语法.
  7. 修正了 unstructured 语法.
  8. 修改了日期和时间语法, 以处理废弃日期语法中的空白.
  9. 从域字面量 (domain literals) 和消息标识符中移除了 quoted-pair.*
  10. 澄清了域语法由其他规范加以限制.
  11. 简化了 "Bcc:" 和 "Resent-Bcc:" 的语法.
  12. 允许 optional-field 出现在跟踪 (trace) 信息中.
  13. 从 msg-id 中移除了 no-fold-quote. 澄清了语法限制.
  14. 泛化了 "Received:" 语法以修复缺陷, 并把该定义移出本文档.
  15. 简化了 obs-qp. 修正并简化了 obs-utext (现在它只出现在废弃语法中). 移除了 obs-text 和 obs-char, 新增了 obs-body.
  16. 修正了废弃日期语法, 以允许更多 (或更少) 的注释和空白.
  17. 修正了所有废弃列表语法 (obs-domain-list, obs-mbox-list, obs-addr-list, obs-phrase-list 以及新增的 obs-group-list).
  18. 修正了 obs-reply-to 语法.
  19. 修正了 obs-bcc 和 obs-resent-bcc, 以允许空列表.
  20. 移除了 obs-path.