2

来自http://www.faqs.org/rfcs/rfc2822.html

CR 和 LF 必须仅作为 CRLF 一起出现;它们不得独立出现在体内。

我们有一个发送确认电子邮件的网络服务,但我们的一位用户指出这不符合 rfc2822 标准。所以我的问题是,为什么 CR 和 LF 在电子邮件消息中一起出现很重要?

4

4 回答 4

13

因为它在公认的 RFC 中?

实现源自 RFC。如果不是这种情况,则无法保证不同实现之间的互操作性。要求它们一起出现可能有也可能没有具体的技术原因,但在这种情况下,这些原因是无关紧要的。这是一个简单的问题,“因为他们这么说”。

于 2009-01-30T20:19:04.427 回答
8

想想旧的电传打字机。CR 将写入头返回到行首,LF 将纸张向前滚动一行。您需要这两个步骤来开始新的一行。如果你使用 CR 没有 LF,你会覆盖相同的文本,这当然是非法的。

无论如何,这是将 CR+LF 定义为新行的 ASCII 代码的历史原因。当然最终它只是任意代码。有些系统只使用 CR 来表示换行,有些系统只使用 LF,有些则完全使用不同的字符。RFC2822 只好选择了一个,并决定只允许 CRLF 序列。

由于 RFC 决定使用 CRLF,因此单独禁止 CR 或 LF 是有意义的,因为无论如何处理这将是非常无用且有问题的。

于 2009-01-30T20:19:42.053 回答
7

因为在电子邮件中 ​​CRLF 是行分隔符。如果您只使用 CR 或仅使用 LF,您将遇到各种客户端、SMTP 服务器组合的各种意外问题。有些服务器会拒绝您的电子邮件,有些会“修复”您的电子邮件。固定电子邮件是处理起来最有趣的一些。

于 2009-01-30T20:20:41.100 回答
0

如果不是你最终得到一个 CR,它把你放在同一行,那么无论你写什么都将在同一行左侧的字符顶部,然后是 LF,你在中间的某个列中重新开始写作。乱。

于 2009-01-30T20:20:34.783 回答