【发布时间】:2012-09-13 15:36:23
【问题描述】:
我正在尝试使用 PHP 的 mail() 函数向我的网站成员发送电子邮件,
邮件是希伯来语的,我想发送一封 html 邮件,
这就是我发送它的方式
$mail_to = "Email@domain.com";
$message = "
<html>
some content here
</html>
";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=windows-1255" . "\r\n";
$headers .= 'From: "MyWebsiteName" <support@domain.com>' . "\r\n";
$mail = mail($mail_to, $subject, $message, $headers );
它在 Gmail 或 Thunderbird 用户等客户端上运行良好,但我在其他一些不太出名但在我的国家仍然广泛使用的客户端中查看过它, 它只是向我展示了html源.. 我还要补充一点,我在那些运行良好的客户端中看到了其他邮件,因此它们支持 html 邮件。
我做错了什么?
编辑:
我查看了标题,很奇怪,这些是它们的标题:
MIME-version: 1.0
X-Mailer: aspNetEmail ver 4.0.0.6
Content-type: text/html; charset=UTF-8
Content-transfer-encoding: quoted-printable
SLNG_REVERSE_PATH: mail@domain.co.il
DT: 2
DB: 1
QueueCmd: 1
List-Unsubscribe: <mailto: mail@domain.co.il>
Original-recipient: rfc822;myemail@domain.com
这些是我的:
Message-id: <20120913143702.10413.qmail@www022.inter.co.il>
MIME-version: 1.0
Content-type: TEXT/PLAIN
Content-transfer-encoding: 8BIT
Original-recipient: rfc822;myemail@domain.com
Content-type:text/html;charset=windows-1255
好像他们出于某种原因添加了 TEXT/PLAIN 到我的,怎么会?
【问题讨论】:
-
我会仔细查看其中一封在其他客户端中显示为 HTML 的电子邮件,特别是在标题处。里面有没有你不包括的东西?你是否以同样的方式格式化你的标题?
-
这取决于客户。您需要查看其中一封电子邮件的完整 Internet 标头 - 只需 google 搜索“查看标头”和“电子邮件客户端名称”即可。
-
@andrewsi 我做了它来查看标题,这真的很奇怪,我编辑了我的问题,看看那里:)
-
不要使用 php 内置的
mail()函数。除了最基本的纯文本电子邮件之外,它不适合目的。我强烈建议改用 phpMailer 类。另请参阅我的回答:stackoverflow.com/questions/12301358/… -
@Don - 它是否也删除了
From:行?还是您只是没有包括那行?