我正在尝试使用带有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或雷鸟用户等客户端完全兼容,但我在其他一些客户端看到它们,这些客户端并不那么出名,但在我的国家仍然广泛使用, 它只是向我展示了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添加到我的,为什么会这样?
答案 0 :(得分:2)
编辑后:
在Content-type标头之前,您的换行次数过多,这使其成为电子邮件正文的一部分。某些客户端将检测此错误格式或识别HTML内容。其他人会假设text / plain或者mail-server会添加text / plain头文件,因为它认为你没有指定任何文件/ plain文件。
答案 1 :(得分:0)
从我的POV - 什么都没有。如果您阅读HTML,那是因为客户端无法读取内容类型text/html
。我的解决方案创建多部分电子邮件,同时包含text/html
和text/plain
。如果需要,请将您的电子邮件保存在网页中。当您发送text / html时,请像您一样发送。使用text / plain,发送指向存储电子邮件的网页的链接。
另外,尝试添加这样的空间:
Content-type: text/html; charset=windows-1255
不确定它会改变什么,但谁知道。顺便说一句,连接在这里没用。
答案 2 :(得分:0)
尝试Content-type: text/html; charset="iso-8859-8"
答案 3 :(得分:0)
我强烈建议不要使用PHP的mail()
函数。它不适合用途,除非您正在做一些基本的事情,例如将简单的纯文本消息发送到单个地址。
对于任何稍微复杂的事情,我建议使用phpMailer class。
phpMailer使得在PHP中处理复杂的电子邮件非常容易。它处理HTML消息,附件,多个收件人和许多其他功能,所有这些都在一个非常简单易用的API中。
另见我之前写的另一个答案,详细信息如下:Send attachments with PHP Mail()?
答案 4 :(得分:0)
因为希伯来语你可以尝试:
$ headers。=“Content-Type:text / html; charset = utf-8 \ r \ n”;
我在希腊邮件中使用它