quoted-printable 是否足以使邮件符合 RFC 2822 中提出的行长度限制?

quoted-printable 是否足以使邮件符合 RFC 2822 中提出的行长度限制?

在 RFC 2822(定义电子邮件)中,规定每行的长度不得超过 78 个字符(不包括 CRLF),并且不得超过 998 个字符。使用 quoted-printable 时,较长的行将被拆分为更多行,每行以 '=' 结尾,直到达到真正的换行符。如果邮件包含的行长度超过 78(或 998)个字符,但使用 quoted-printable 进行编码,则邮件是否符合标准?

有争论说,这并不兼容,因为接收邮件客户端在解码引用可打印消息后会有更长的行。

编辑:按照 David Cary 的提问方式来澄清这个问题:是的,我的意思是 quote-printable 编码邮件应该与 quoted-printable 兼容,这意味着每行的长度不超过 76 个字符。但解码后的消息可能包含比此限制更长的行。所以我的问题是:实现 RFC 1521 的客户端软件在解码 quoted-printable 文本内容后是否应该处理无限长的行?到目前为止,两个答案的答案都是肯定的(谢谢),但 Netiquette(RFC 1855)不鼓励这样做。但 Netiquette 甚至将每行的长度限制为 65 个字符,几乎没有人遵守这个限制。

答案1

我不确定你在问什么:

接收邮件客户端在解码 quoted-printable 之前发现很长的行

假设传输端的引用可打印编码软件只是引用了不可打印的字母,使得最终的编码行比原始行长,而没有添加“软换行符”,从而导致编码行的长度超过了限制。

这是不合规的。

quoted-printable 编码数据的行不得超过 76 个字符。为了在不改变编码文本的情况下满足此要求,可以添加软换行符...这些软换行符还允许在行大小受限的环境中编码没有换行符(或包含非常长的行)的文本,例如某些 SMTP 软件的“每行 1000 个字符”限制,如 RFC 2821 所允许的。

--维基百科:quoted-printable,释义RFC2045第 21 页。

编码后的行很短,但接收邮件客户端在解码 quoted-printable 后发现行很长

这符合 RFC2822 和 RFC2045,并且应该得到所有软件的支持。

然而,一些网络礼仪指南不鼓励创建此类消息,包括RFC 1855“网络礼仪指南”。

答案2

它绝对符合要求。Quoted-Printable 以及其余 MIME 系列 RFC(RFC 2045 至 RFC 2049)的整个要点是允许对电子邮件中无效的数据进行编码。RFC 2822 明确(并反复!)向读者指出这些 RFC 中有关如何执行此操作的信息。

答案3

如果你真的想知道构建一个兼容的电子邮件编写器和解析器有多复杂,那么你必须在 Youtube 上观看此视频:http://www.youtube.com/watch?v=JENdgiAPD6c

Ricardo Signes 对不同的 RFC 以及它们给现实生活带来的愚蠢行为给出了内部见解。

这段视频长达 40 分钟,只触及了电子邮件“内容”的表层和底层。看完之后,你会彻底改变对电子邮件软件的看法,你认为它符合电子邮件标准。

相关内容