我通过PHP内置的简单邮件功能为收件人发送订单确认,这很好用。这是一个在桌子中设置的“漂亮”电子邮件,以及一些带有详细信息的样式
然而,一些收件人只看到html标签,当然无法理解任何东西..
如果我得到一个,它在thunderbird,hotmail,gmail中完美展示..
html是完美的,没有遗漏任何结束标记,我也发送一些标题,因为我已经读过我应该。这是我的邮件发送功能:
$body = "some html tags, set up in a table" ;
$sendto = "The recipients email here" ;
$subject = "subject here" ;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
$headers .= "To: theemailhere <theemailhere>\r\n";
$headers .= 'From: <thefromemailhere>' . "\r\n";
mail($sendto, $subject, $body, $headers);
这是我的错误,还是收件人选择不接收HTML电子邮件?我的意思是这在2012年仍然有可能,人们会禁用这个吗?
如果是这样,那么这可能是一个很好的解决方法。我的意思是我想避免使用纯文本。
答案 0 :(得分:0)
是。 真正电子邮件客户端不允许使用HTML电子邮件。我想旧的Outlook也是其中之一,但不确定。
所以,无论如何,这不是你的错,而是用户的错。参见来源1和来源2。
你永远无法确定用户的邮件程序接受了什么。只有明文才能被接受。引用来源2:
“你能做的最好的事情就是预测每个主要客户的意愿 打破你的设计,然后试着控制它的破坏方式,这样就可以了 仍然可以被大多数收件人阅读。“
只有多部分消息才能解决,但有些人会得到明文。有关该问题的详细信息,请参阅源3;有关解决方案,请参阅源4.
答案 1 :(得分:0)
我最近一直在使用Zend_Mail
(来自ZF),它可以选择设置纯文本消息,然后使用HTML消息覆盖HTML可用的HTML消息。我不确定这是如何在消息中实现的(header / etc.),但这可能是你问题的答案。