PHP电子邮件换行

时间:2015-05-15 07:34:40

标签: javascript php jquery html email

我编写了使用HTML和JavaScript(jQuery)从PHP发送电子邮件的代码。在js中我定义了以下字符串:

var firstT = "It is " + $("#time").html() + " right now.";
var secondT = "And now, it is " + $("#othTime").html() + ".";

var sendT = firstT + "\r\n" + secondT;

然后我将此字符串发送到PHP文件:

var thTi = "folder/time.php?to=" + $("#perName").val() + "&message=" + sendT;
    $.ajax({
        url: thTi
    });

PHP接收此字符串并使用以下代码发送它:

<?php

    $to = $_GET['to'];
    $subject = "The Subject";
    $message = $_GET['message'];
    $headers = 'From: Me?' . "\r\n" .
               'Reply-To: no-reply@thesite.com' . "\r\n" .
               'X-Mailer: PHP/' . phpversion();

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

所以,问题是 - 当一个人收到消息时,它就在一行中。我添加了换行符\r\n,甚至尝试使用<br><br />。我发现在某个地方插入一个点.可能会解决问题,但我已经尝试了,但事实并非如此。

3 个答案:

答案 0 :(得分:2)

要发送包含mail()的html电子邮件,您必须添加正确的标题:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Me?' . "\r\n";
$headers .= 'Reply-To: no-reply@thesite.com' . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();

清理并添加换行符到你的html:

$message = strip_tags($_GET['message'];);
$message_html = preg_replace('/\n/' , '<br />' , $message);

答案 1 :(得分:0)

使用双引号"代替',然后\r\n将起作用。所以你的新代码必须如下:

$headers = "From: Me?" . "\r\n" .
           "Reply-To: no-reply@thesite.com" . "\r\n" .
           "X-Mailer: PHP/" . phpversion();

答案 2 :(得分:0)

由于您在邮件中首次使用html tages,您需要做的是将该邮件的标题类型设置为html。在添加此变量中的from和其他详细信息之前,将以下行添加到开头的$ header变量的代码中。

 $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= 'From: Me?' . "\r\n" .
               'Reply-To: no-reply@thesite.com' . "\r\n" .
               'X-Mailer: PHP/' . phpversion();

要了解这一点,您可以看到以下链接:http://www.w3schools.com/php/func_mail_mail.asp

我希望这会对你有所帮助。