在字段正文的开头折叠MIME标题是否有效?

时间:2015-05-08 16:34:28

标签: mime folding rfc822

我正在调试一个无法解析来自一个电子邮件服务的标头的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以允许字段正文的[CRLF LWSP field-body]部分?

1 个答案:

答案 0 :(得分:3)

是的,完全允许在空白处折叠。通常,只有当线路太长时才会这样做,但无论如何它都是完全可选的;没有要求折叠或避免折叠。 (当然,如果一条线太长而无法满足RFC5321,它折叠,或以某种方式缩短。现在,RFC2047比传统的空白折叠更加通用和透明。)< / p>

https://tools.ietf.org/html/rfc5322#section-2.2.3中所述,折叠线是一条“逻辑线”。 (请注意,你们822早已被新标准所取代; 5322是目前的替代品。)