邮件中未显示 HTML 内容 [重复]

Posted

技术标签:

【中文标题】邮件中未显示 HTML 内容 [重复]【英文标题】:HTML content not showing in mail [duplicate] 【发布时间】:2016-04-29 09:01:56 【问题描述】:

我已经在 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 中喜欢这样吗?

【问题讨论】:

【参考方案1】:

可能是您缺少标明这是 HTML 内容的标头吗?

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

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

【讨论】:

【参考方案2】:

来自 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";

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

【讨论】:

【参考方案3】:

您好,要发送带有 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 正文的电子邮件

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

祝你好运

【讨论】:

以上是关于邮件中未显示 HTML 内容 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

HTML标签显示在邮件中[重复]

SQLite Android中未显示数据库表[重复]

HTML 电子邮件中未显示字体,超链接带有下划线

使用 HTML 发送邮件 [重复]

如何解决在开发 C++ 中未定义的对 readimagefile 的引用错误 [重复]

电子邮件未发送。 ajax发送的值[重复]