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

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

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

4

2 回答 2

0

RFC 没有说你必须在 78 个字符后换行:

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

发送系统添加的 CRLF 无法“解码”,接收者将保持原样。

如果您不想修改消息,请不要在少于 998 个字符的任何行中添加换行符。

于 2016-08-28T19:39:31.400 回答
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 个字符的超长行,您基本上会遇到同样的问题,所以您最好的选择是遵循以下之一其他选项。
于 2016-09-16T21:42:06.677 回答