来自http://www.faqs.org/rfcs/rfc2822.html:
CR和LF必须只作为CRLF一起出现; 它们不能独立出现在体内.
我们有一个发送确认电子邮件的Web服务,但我们的一位用户指出这不符合rfc2822标准.所以我的问题是,为什么CR和LF一起出现在电子邮件中很重要?
因为它在公认的RFC中?
实现源自RFC.如果情况并非如此,那么就不能保证不同实现之间的互操作性.要求它们一起出现可能有或可能没有明显的技术原因,但在这种情况下,这些原因是无关紧要的.这是一个简单的问题"因为他们这么说."
考虑一个旧的电传打字.CR将写头返回到行的开头,LF将纸张向前滚动一行.您需要两个步骤才能开始新行.如果您使用没有LF的CR,您将覆盖相同的文本,这当然是非法的.
无论如何,这是将CR + LF定义为新行的ASCII码的历史原因.当然最终它只是任意代码.有些系统仅使用CR来表示新行,有些系统仅使用LF,有些系统完全使用不同的字符.RFC2822必须选择一个,并决定只允许序列CRLF.
由于RFC决定使用CRLF,因此单独禁用CR或LF是有意义的,因为无论如何这都是无用的和有问题的.
因为在电子邮件中CRLF是行分隔符.如果您只使用CR或仅使用LF,您将遇到各种客户端,SMTP服务器组合的各种意外问题.有些服务器会拒绝您的电子邮件,有些会"修复"您的电子邮件.固定电子邮件是一些最有趣的处理方式.