PHP Mail函数在消息中显示\ r \ n而不是CRLF

时间:2014-04-29 13:31:37

标签: php

我使用PHP Mail功能发送电子邮件,并且该邮件有几行我用\ r \ n分隔,但是当电子邮件到达时它在邮件中包含\ r \ n而不是在新行上开始每一行。

$subject = 'Activation';
$message = 'ActivationCode=' . $activationcode . '\r\nUserLimit=' . $row['userlimit'] . '\r\nCanNetwork=' . $row['canrunonnetwork'];
$headers = 'From: noreply@here.com';
mail('me@here.com', $subject, $message, $headers);

当电子邮件到达时,它看起来像这样:

ActivationCode=1234\r\nUserLimit=4\r\nCanNetwork=-1

虽然我预计它看起来像这样:

ActivationCode=1234
UserLimit=4
CanNetwork=-1

2 个答案:

答案 0 :(得分:3)

将字符串分隔符更改为双引号。

在用'分隔的PHP字符串中,字符串是用"分隔的字符串。

所以这些是平等的:

'\r\n' === "\\r\\n"; // true

答案 1 :(得分:0)

如果是单引号,则应使用双引号(")。变量和行结尾等不会用单引号扩展。

所以你的代码应该是:

message = "ActivationCode=" . $activationcode . "\r\nUserLimit= ...etc.";