【问题标题】:What is the proper newline in emails? LF or CRLF?电子邮件中正确的换行符是什么? LF 还是 CRLF?
【发布时间】:2011-10-10 15:55:09
【问题描述】:

最近一些客户抱怨他们收到了乱码电子邮件。显示了 MIME 标头,以及 base64 编码数据等。应该由他们的邮件客户端解码的东西。

经过调查,我发现一些邮件客户端(例如 gmx.de webmail)在每隔一行之后插入一个空白行,因此确实把所有事情都搞砸了。

根据预感,我更改了我的邮件发送代码,将所有 CRLF 替换为 LF。你瞧 - 邮件全部送达了。

现在,这很奇怪,因为RFC 5322 明确指出

2.3。身体

消息的正文只是几行 US-ASCII 字符。这 身体上只有两个限制如下:

o CR 和 LF 只能作为 CRLF 一起出现;他们不得出现 在体内独立。

嗯?网络邮箱不好?还是我哪里出错了?其他网络邮件(如 gmail)对此没有任何问题,而且实际上似乎大多数人都没有问题(因为投诉很少)。

请注意 - 我正在通过 Linux 机器上的 PHP 的 mail() 函数发送电子邮件。底层的邮件软件好像是qmail,但我不确定。

好像是qmail doesn't like CRLF under similar conditions。这可能是问题吗?不是已经修复了吗(那个页面4年没更新了)?

【问题讨论】:

  • @Vilx 你得到了明确的答案吗?我自己也在想这个。
  • @AdamD - 这是很久以前的事了,我已经不记得了。 :D 但我认为这是 qmail 或其他东西中的一个已知错误。不过不确定。

标签: email newline


【解决方案1】:

http://www.php.net/manual/en/function.mail.php 状态

注意:

如果没有收到消息,请尝试仅使用 LF (\n)。一些 Unix 邮件传输代理 (最值得注意的是 qmail)自动用 CRLF 替换 LF(如果 使用 CRLF)。这应该是最后的手段,因为它不符合 RFC 2822。

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 2021-08-21
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多