HTML内容未在邮件中显示

时间:2016-01-22 17:03:33

标签: php html email

我已在localhost中设置了电子邮件发送,并使用我可以访问我的Gmail帐户以使用php脚本发送邮件。

<?php

$to = "example@gmail.com";
$subject = "HTML Mail";
$message  = "<html><body>";
$message .= "<b>Hey! How are you today?</b>";
$message .= "<br>Regards";
$message .= "</body></html>";

$headers = "From: myemail@gmail.com\r\n";


mail($to,$subject,$message,$headers);
echo "<h1>MAIL SENT</h1>";
?>

当我使用此脚本发送此电子邮件时,它会发出

<html><body><b>Hey! How are you today?</b><br>Regards</body></html>

为什么不显示html类型输出?

  

喂!你今天好吗?
问候

在gmail中这样吗?

3 个答案:

答案 0 :(得分:2)

可能是您缺少标题以指定这是HTML内容吗?

$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "MIME-Version: 1.0\r\n";

编辑:正如另一个答案所指出的那样,两个标题都是必需的。

答案 1 :(得分:1)

来自mail()的PHP文档:

// To send HTML mail, the Content-type header must be set
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

如果缺少这些标头,则邮件内容将被解释为纯文本。

答案 2 :(得分:1)

您好,要发送包含HTML正文的电子邮件,您需要指定标题。像这样的东西

//your code <br>
$headers = "From: myemail@gmail.com\r\n"; <br>
//HTML headers <br>
$headers .= 'MIME-Version: 1.0' . "\r\n"; <br>
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

所以在那之后你可以用html body发送电子邮件

mail($to,$subject,$message,$headers);
祝你好运