电子邮件中忽略换行符


Newline being ignored in email

我正在构建一封电子邮件,只是一个简单的文本。部分电子邮件来自CSV文件,我想在每个条目后都有一个换行符'n。出于某种原因,这被忽略了。我正在替换逗号,如下所示。

 $orderDetails = str_replace(',', ''n'n', $orderDetails);

然后将其添加到电子邮件中

$email_body = "Hello Joe Bloggs, 'n'n Below are the order details 'n'n".$orderDetails;

出于某种原因,收到的电子邮件会打印'n'n,而不是实际放置新行。所以电子邮件实际上看起来像

  Hello Joe blogs 

  Below are the order details

  item 1'n'nitem 2'n'nitem 3'n'n

这是为什么呢?

您应该在str_replace()中使用双引号:

$orderDetails = str_replace(',', "'n'n", $orderDetails);

在双引号内,PHP 会将'n解释为特殊字符。请参阅 PHP 字符串。

使用'r'n和双引号。

$orderDetails = str_replace(',', "'r'n", $orderDetails);