通过PHP发送的我的电子邮件仅显示为少数收件人的标签(发送几百个)

时间:2012-02-12 15:09:10

标签: html-email php

我通过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年仍然有可能,人们会禁用这个吗?

如果是这样,那么这可能是一个很好的解决方法。我的意思是我想避免使用纯文本。

2 个答案:

答案 0 :(得分:0)

是。 真正电子邮件客户端不允许使用HTML电子邮件。我想旧的Outlook也是其中之一,但不确定。

所以,无论如何,这不是你的错,而是用户的错。参见来源1和来源2。

你永远无法确定用户的邮件程序接受了什么。只有明文才能被接受。引用来源2:

  

“你能做的最好的事情就是预测每个主要客户的意愿   打破你的设计,然后试着控制它的破坏方式,这样就可以了   仍然可以被大多数收件人阅读。“

只有多部分消息才能解决,但有些人会得到明文。有关该问题的详细信息,请参阅源3;有关解决方案,请参阅源4.

有关此问题的一些文件:Source 1Source 2Source 3Source 4

答案 1 :(得分:0)

我最近一直在使用Zend_Mail(来自ZF),它可以选择设置纯文本消息,然后使用HTML消息覆盖HTML可用的HTML消息。我不确定这是如何在消息中实现的(header / etc.),但这可能是你问题的答案。