【问题标题】:Send XML email as plain text with line break in Php以纯文本形式发送 XML 电子邮件,在 PHP 中使用换行符
【发布时间】:2016-10-19 01:18:38
【问题描述】:

我尝试将 XML 电子邮件作为带有换行符的纯文本发送,如下所示。 但它不能正常工作。

$message = '<?xml version="1.0" encoding="UTF-8"?>'."\r\n".'
<?ADF VERSION="1.0"?> '."\r\n".'
<adf> '."\r\n".'
</adf> '."\r\n";

$headers .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
$headers .= 'From: <Testing>'."\r\n";
mail('myemail@email.com', 'Subject', $message, $headers);

现在可以正常发送电子邮件,但会出现双换行符。

这样

<?xml version="1.0" encoding="UTF-8"?>

<?ADF VERSION="1.0"?>

<adf>

</adf>

我想发送如下邮件。

<?xml version="1.0" encoding="UTF-8"?>
<?ADF VERSION="1.0"?>
<adf>
</adf>

我该怎么做?

任何帮助将不胜感激。

【问题讨论】:

  • 告诉我你服务器的操作系统
  • 我已经删除了 "\n" 然后它没有换行符
  • 最好使用PHP_EOL 而不是“\r\n”。见:php.net/manual/en/reserved.constants.php
  • 您的字符串中有返回值。您在一行开始一个字符串,然后在结束字符串之前跳到下一行(返回)。
  • 谢谢,但不能使用 PHP_EOL

标签: php xml email


【解决方案1】:

结合我的两个 cmets,你可以试试这个:

$message = '<?xml version="1.0" encoding="UTF-8"?>'."\r\n".
'<?ADF VERSION="1.0"?>'."\r\n".
'<adf>'."\r\n".
'</adf>'."\r\n";

$headers .= 'Content-Type: text/plain; charset="utf-8"'."\r\n";
$headers .= 'From: <Testing>'."\r\n";
mail('myemail@email.com', 'Subject', $message, $headers);

编辑:我误解了PHP_EOL。电子邮件是个例外,您应该始终使用"\r\n"

【讨论】:

  • 现在发送邮件没有换行符
  • 啊,那么最好使用"\r\n",我不确定,但电子邮件可能是一个例外,您不应该使用平台的换行符。
猜你喜欢
  • 2012-04-29
  • 2015-09-19
  • 2021-04-12
  • 2011-10-04
  • 2017-06-28
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
相关资源
最近更新 更多