如何解码7bit普通/文本邮件正文(如何删除CRLF)?

时间:2016-08-27 03:03:52

标签: email encoding character-encoding ascii rfc5322

Content-Transfer-Encoding: 7bit
Content-Type: plain/text

根据rfc5322,您需要在78个字符后断行(添加CRLF)。

我的问题是如何解码文本/正文(删除CRLF)?我怎么知道编码器添加了哪个CRLF,哪个是原始正文内容的一部分?我已经检查了一些实现,但大多数实际上似乎并不打扰,但编码规则是强制执行的。

2 个答案:

答案 0 :(得分:0)

RFC并未说明你必须在78个字符后断行:

  

每行字符必须不超过998个字符,   并且不应超过78个字符,不包括CRLF。

没有办法“解码”发送系统添加的CRLF,收件人将保持原样。

如果您不想修改邮件,只需在任何少于998个字符的行中添加换行符。

答案 1 :(得分:0)

实际上,rfc5322声明:

Each line of characters MUST be no more than 998 characters, and SHOULD 
be no more than 78 characters, excluding the CRLF.

也就是说, 建议将行限制为78个字符。

对于基于文本的MIME部分(例如示例中的部分),您有几个选项可以实现此目的:

  1. 使用text/plain; format=flowed。有关此格式的更多信息,请查看rfc2646。从本质上讲,它提供了一种包装长线的方式,接收客户端是可逆的(嘿!那是完全你想要的!)
  2. 使用其他Content-Transfer-Encoding,例如quoted-printablebase64
  3. 允许行超过78个字符并希望它们不超过998个字符...但如果你的行数超过998个字符,你基本上会遇到同样的问题,所以你最好的选择是请按照其他选项之一。