PHP_EOL应该用在电子邮件中吗?

时间:2010-07-14 16:00:32

标签: php email

我看到很多使用“\ r \ n”的PHP电子邮件实现,但我也看到其中一些使用PHP_EOL常量。哪一个更好?

感谢任何帮助。大都会

3 个答案:

答案 0 :(得分:16)

如果要终止电子邮件中的行,那么您需要查看的是电子邮件规范,而不是任何特定平台上使用的规范。

电子邮件中的行根据RFC2821

由CRLF(“\ r \ n”)终止
  

SMTP命令,除非被a更改   服务扩展,消息数据,   以“线”传输。行   由零个或多个数据组成   由序列终止的字符   ASCII字符“CR”(十六进制值0D)   紧接着是ASCII   字符“LF”(十六进制值0A)。这个   终止序列表示为    在这份文件中。符合   实现绝不能识别或   生成任何其他角色或   字符序列为一行   终止子

这似乎很清楚,在电子邮件中,行尾将以\ r \ n发送。发送任何其他内容可能会有效,但除非您使用“服务扩展”,否则它是错误的,如果您是,那么您可能知道您应该发送什么。

答案 1 :(得分:1)

只是为了确保:

PHP_EOL接收方方面的电子邮件不起作用。它将使用运行PHP脚本的系统中常见的新行字符组合。

因此,如果你有Linux / Unix服务器,PHP_EOL将导致\n,如果你有Windows服务器,它将是\r\n

今天,你使用的并且我认为大多数Windows电子邮件应用程序也可以处理\n并不重要(afaik甚至WordPad理解这一点,它是记事本问题)。

答案 2 :(得分:0)

\r\n是Windows换行符,如果您的客户主要是Windows用户,那么这对您没问题。

我也相信大多数非Windows电子邮件客户端都会对此进行补偿,所以\r\n不应该是Mac或* Nix上的问题。