0

我正在尝试在电子邮件中呈现 html,即使在搜索了网络之后,我仍然有点困惑.. 基本上我想在电子邮件中说一个带有背景颜色显示的框(div)。我正在使用 php mail() 函数发送电子邮件,并尝试将消息正文设置为字符串,例如:"<div style='background:black;'>Test</div>",但电子邮件不是呈现 html,而是仅显示 html 文本。有没有一种简单的呈现方法的HTML?谢谢您的帮助!

4

4 回答 4

1

我认为您需要在标题中使用它:

$headers .= "内容类型:文本/html\r\n";

此 URL 显示了如何执行此操作:

http://www.webhostingtalk.com/showthread.php?t=416467

(我相信您已经知道这一点 - 您还必须确保您的客户端可以显示 HTML 电子邮件)

于 2012-05-02T16:02:00.747 回答
1

您应该首先查看的地方是 php 文档。

http://php.net/manual/en/function.mail.php#example-3146

他们提供了一个关于如何使用 mail() 函数发送 html 电子邮件的示例。

您可能还想阅读发送 html 电子邮件的最佳实践,因为每个电子邮件客户端都会以不同的方式呈现 html。CSS 支持非常少,我也不推荐使用 div。你真的只想使用最基本的 html 标签,比如<p>, <a>, <table> and <img />标签。你所有的css也应该是内联的。

这是css支​​持的一个很好的参考。 http://www.campaignmonitor.com/css/

如果您计划发送大量电子邮件,那么您可能需要研究类似http://mailchimp.com的服务,因为邮件功能并不是真正用于处理大量电子邮件。

于 2012-05-02T16:04:32.027 回答
0

您需要先设置标题,然后才能使用在电子邮件中发送 HTMLmail();

例如:

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

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

显然,您需要小心如何使用新发现的 HTML 电子邮件功能,因为并非所有电子邮件客户端都会以相同的方式呈现它(您认为交叉测试浏览器很痛苦)。这里有一个很好的指南-> http://www.campaignmonitor.com/css/

这里还有一个很棒的网站,它不仅看起来很棒,而且还为您提供了您需要的所有信息,了解哪些内容可以工作 -> http://www.emailology.org/

于 2012-05-02T16:00:23.587 回答
0

您必须通过将 Content-type 设置为 text/html 来正确编码您的电子邮件以表明它是 HTML。

有关可靠的背景信息,请参阅http://en.wikipedia.org/wiki/MIME

根据您的平台,几乎可以肯定有一个工具集可以简化此操作。例如,在 Microsoft ASP.Net 上,我使用MvcMailer。如果您指定您的平台,我将提出具体建议。

对于 PHP,这里有一篇关于发送格式良好的 HTML 电子邮件的好文章

$to = 'bob@example.com';

$subject = 'Website Change Reqest';

$headers = "From: " . strip_tags($_POST['req-email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
$headers .= "CC: susan@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

mail($to, $subject, $message, $headers);
于 2012-05-02T16:00:36.710 回答