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