为什么我的PHP mail()函数不会发送换行符?

时间:2012-10-09 23:07:45

标签: php

这是脚本:

<?php

    $name = $_POST["name"];
    $email = $_POST["email"];
    $message = $_POST["message"];

    $recipient = "me@christianselig.com";
    $subject = "Message From Website";
    $body = "[From: " . $name . "]\r\n\r\n" . $message;
    $headers = "From: " . $email . "\r\n";
    $headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";

    $success = mail($recipient, $subject, $body, $headers);

    echo $success;

?>

在此页面上:christianselig.com/contact.html

我的邮件将在没有任何换行符的情况下发送。我已将它设置为使用双线换行将[From:xxx]部分与消息分开,因此它应如下所示:

  

[来自:约翰]

     

嘿。

但事实并非如此。

如果我将消息长多行,它也会在一行上连接它们。我该如何防止这种行为?我的代码曾经允许它,但我以某种方式打破了它......

1 个答案:

答案 0 :(得分:2)

因为您使用html格式发送它。尝试:

$body = nl2br("[From: " . $name . "]\r\n\r\n" . $message);