附录 B. 与早期规范的差异
本附录列出了 Internet Message Format 相对于早期规范所作的变更, 具体即 [RFC0822], [RFC1123] 和 [RFC2822]. 下面标有星号 (*) 的条目出现在本文档第 4 章中, 因此已不能再用于生成消息.
以下是从 [RFC0822] 和 [RFC1123] 到 [RFC2822] 的变更中在本规范里保留的部分:
- 允许在 phrase 的废弃形式中出现句点.
- ABNF 移出本文档, 现收录于 [RFC5234].
- 年份允许使用四位或更多位数字.
- 明确规定了头部字段的排序 (及无排序要求).
- 移除了 Encrypted 头部字段.
- 明确允许 "-0000" 时区并给出其含义.
- 并非在每个记号之间都允许折叠空白.
- 移除了对收件目的地 (destinations) 的要求.
- 重新定义了转发 (forwarding) 与重发 (resending).
- 不再专门列出扩展头部字段.
- 移除了 ASCII 0 (null).*
- 折叠续行不得只包含空白.*
- 不允许在日期中随意插入注释.*
- 不允许非数字时区.*
- 不允许两位年份.*
- 三位年份会被解释, 但不允许用于生成消息.*
- 不允许地址中的路由 (routes).*
- 不允许在 local-part 和 domain 中出现 CFWS.*
- 不允许地址列表中的空成员.*
- 不允许在字段名与冒号之间出现折叠空白.*
- 不允许在字段名与冒号之间出现注释.
- 收紧了 in-reply-to 和 references 的语法.*
- 不允许在 msg-id 中出现 CFWS.*
- 收紧了 resent 字段的语义, 仅作为信息性字段使用.
- 不允许 Resent-Reply-To.*
- 字段不得多次出现 (resent 和 received 字段除外).*
- 不允许随意出现的 CR 和 LF.*
- 规定了行长度限制.
- 更明确地规定了 Bcc.
以下是对 [RFC2822] 的变更:
- 修正了各类排版/语法错误, 并作了澄清.
- 全文将 "standard" 改为 "document" 或 "specification".
- 区分了 "header field" (头部字段) 与 "header section" (头部段).
- 从 ctext, qtext, dtext 和 unstructured 中移除了 NO-WS-CTL.*
- 将关于 specials 的讨论移到 "Atom" 一节. 将相关文本移到 "Overall message syntax" 一节.
- 简化了 CFWS 语法.
- 修正了 unstructured 语法.
- 修改了日期和时间语法, 以处理废弃日期语法中的空白.
- 从域字面量 (domain literals) 和消息标识符中移除了 quoted-pair.*
- 澄清了域语法由其他规范加以限制.
- 简化了 "Bcc:" 和 "Resent-Bcc:" 的语法.
- 允许 optional-field 出现在跟踪 (trace) 信息中.
- 从 msg-id 中移除了 no-fold-quote. 澄清了语法限制.
- 泛化了 "Received:" 语法以修复缺陷, 并把该定义移出本文档.
- 简化了 obs-qp. 修正并简化了 obs-utext (现在它只出现在废弃语法中). 移除了 obs-text 和 obs-char, 新增了 obs-body.
- 修正了废弃日期语法, 以允许更多 (或更少) 的注释和空白.
- 修正了所有废弃列表语法 (obs-domain-list, obs-mbox-list, obs-addr-list, obs-phrase-list 以及新增的 obs-group-list).
- 修正了 obs-reply-to 语法.
- 修正了 obs-bcc 和 obs-resent-bcc, 以允许空列表.
- 移除了 obs-path.