在电子邮件中呈现html元素

时间:2012-05-02 15:57:21

标签: html email html-email

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

4 个答案:

答案 0 :(得分:1)

我认为你在标题中需要这个:

$ headers。=“Content-type:text / html \ r \ n”;

此网址显示了如何执行此操作:

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

(我相信你已经知道了 - 你还必须确保你的客户 可以显示HTML电子邮件)

答案 1 :(得分:1)

你应该看的第一个地方是php docs。

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,因为邮件功能并非真正用于处理大量电子邮件。

答案 2 :(得分:0)

您需要先设置标题,然后才能使用mail();

在电子邮件中发送HTML

例如:

$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电子邮件功能,因为并非所有电子邮件客户端都会将其呈现方式(您认为交叉测试浏览器很痛苦)。这里有一个很好的指南 - &gt; http://www.campaignmonitor.com/css/

这里还有一个很棒的网站,它不仅看起来很棒,而且还为您提供了所需的所有信息,这些信息将用于什么 - &gt; http://www.emailology.org/

答案 3 :(得分:0)

您必须通过将内容类型设置为text / html来正确编码您的电子邮件,以表明它是HTML。

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

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

对于PHP,这是一篇关于sending nicely formatted HTML email

的精彩文章
$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);
相关问题