PHP邮件发送时回车失败

时间:2015-10-22 07:32:49

标签: php

我知道多年来一直在问这个问题的很多版本,但这里或任何地方的答案似乎都没有帮助。

我在支持页面上的单个文本区域中有票据内容。当从db调用并使用nl2br回显到页面时,一切都很好。但是,当应用于PHP邮件中的邮件内容变量时,结果会有所不同。

$to = 'AnEmailAddress';
$message = '
    <html>
    <head>
      <title>Message From The System</title>
    </head>
    <body>
     <table>
        <tr>
            <td>Message: </td><td>'.$ticket_content.'</td>
        </tr>
    </table>
    </body>
    </html>
    '."\r\n";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: <'.$user_email.'>' . "\r\n";

mail($to, $subject, $message, $headers);

到目前为止,我已经尝试过了......

$ticket_content = nl2br($ticket_content);

并将nl2br放入表格本身..

<td>Message: </td><td>'.nl2br($ticket_content).'</td>

我试过用和替换\ r \ n的preg和str。但是无济于事,消息输出总是一样的。

  

Hello \ r \ n \ r \ n如果您检查客户端是否具有正确的颜色条   你在约会期间吗?\ r \ n \ r \ nStephen

我也尝试过没有桌子和桌子,只使用纯文本并删除前两个标题。它无论我做什么都不会显示换行符。

2 个答案:

答案 0 :(得分:0)

简而言之,$ticket_content包含文字反斜杠+字母组合,而不是实际的生活Feed字符。您没有提供有关如何创建变量的任何提示,但您有误解了manual chapter about strings,更具体地说是 Escaped characters 部分(强调我的):

  

如果字符串包含在双引号(&#34;)中,PHP将解释   更多特殊字符的转义序列

答案 1 :(得分:0)

尝试使用字符串替换功能,如下所示 -

$ticket_content = str_replace("\r\n", "<br>", $ticket_content);