【问题标题】:Is it valid to fold MIME headers at the beginning of field-body?在字段正文的开头折叠 MIME 标头是否有效?
【发布时间】:2015-07-19 15:49:21
【问题描述】:

我正在调试一个 MIME 解析器,它无法解析来自一个电子邮件服务的标头。电子邮件服务包含一个标题,该标题由完全在下一行的字段正文组成,如下所示:

Message-Id:
  <12345.67890.abcdef@example.com>

这合法吗?

RFC-822 为有效标头指定以下语法:

3.2.  HEADER FIELD DEFINITIONS

      These rules show a field meta-syntax, without regard for the
 particular  type  or internal syntax.  Their purpose is to permit
 detection of fields; also, they present to  higher-level  parsers
 an image of each field as fitting on one line.

 field       =  field-name ":" [ field-body ] CRLF

 field-name  =  1*<any CHAR, excluding CTLs, SPACE, and ":">

 field-body  =  field-body-contents
                [CRLF LWSP-char field-body]

 field-body-contents =
               <the ASCII characters making up the field-body, as
                defined in the following sections, and consisting
                of combinations of atom, quoted-string, and
                specials tokens, or else consisting of texts>

空字符串是否满足 field-body-contents 以允许 field-body 的 [CRLF LWSP field-body] 部分?

【问题讨论】:

    标签: mime folding rfc822


    【解决方案1】:

    是的,在空白处折叠是完全允许的。通常,仅当行太长时才这样做,但无论如何它完全是可选的;不需要折叠或避免折叠。 (当然,如果一行太长而无法满足 RFC5321,它必须被折叠,或者以其他方式缩短。如今,RFC2047 比传统的空白折叠更加通用和透明。)

    正如https://www.rfc-editor.org/rfc/rfc5322#section-2.2.3 中所解释的,折叠线是一条“逻辑线”。 (请注意,旧的 822 早已被更新的标准取代;5322 是当前的替代品。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2020-03-09
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多