Content-Transfer-Encoding: 7bit
Content-Type: plain/text
根据rfc5322,您需要在 78 个字符后换行(添加 CRLF)。
我的问题是如何解码文本/正文(删除 CRLF)?我如何知道编码器添加了哪个 CRLF,哪个是原始正文内容的一部分?我已经检查了一些实现,但它们中的大多数似乎并不在意编码规则是强制执行的。
RFC 没有说你必须在 78 个字符后换行:
每行字符必须不超过 998 个字符,并且应该不超过 78 个字符,不包括 CRLF。
发送系统添加的 CRLF 无法“解码”,接收者将保持原样。
如果您不想修改消息,请不要在少于 998 个字符的任何行中添加换行符。
实际上,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 部分(例如您的示例中的部分),您有几个选项可以实现此目的:
text/plain; format=flowed
. 有关此格式的更多信息,请查看rfc2646。从本质上讲,它提供了一种包装长行的方法,该方法可由接收客户端可逆(嘿!这正是您想要的!)Content-Transfer-Encoding
,例如quoted-printable
或base64
。