2011-01-06 27 views
0

我有一个php邮件脚本,除了一个小事实外,其效果很好。在Outlook(所有版本)中,电子邮件以不一致的方式出现。如果电子邮件是通过互联网浏览器(如Gmail.com)阅读的,那就没问题。是否有可能在Outlook中使电子邮件看起来不错?我尝试将它作为HTML发送,但仍无济于事。使用PHP发送伪造语言邮件

如果必要的话,我可以张贴的全部代码,但它看起来是这样的:

这些标题:

$email = $_REQUEST['email']; 
$headers = 'From: ' . $email . "\r\n" . 
      'Reply-To: ' . $email . "\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 
$headers .= "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-Type: Text/plain; charset=ISO-8859-8"; 

使用mail()函数:

mail ($to, $subject, $message, $headers); 

我试图想方设法对输入的Outlook邮件进行不同的编码,但我(1)找不到这样做的方法,并且(2)宁愿这样做,因为它应该被许多人。

编辑:添加以下线后,将消息适当地在浏览器中呈现的两个以及观。希望这可以帮助别人!

//convert to utf-8 
$message = mb_convert_encoding($message , 'ISO-8859-8' , 'utf-8'); 

谢谢! 阿米特

+0

我怀疑你在和希伯来语合作,是吗?这听起来像是outlook的问题,而不是PHP,特别是因为你确认它可以在浏览器中使用。也许它与Windows和/或Outlook有关。 – Moshe 2011-01-06 14:56:18

+0

@Moshe:是的,它是希伯来语,它绝对是一个Outlook呈现问题。虽然我可以用PHP编码解决它,但请参阅编辑解决方案 – Amit 2011-01-06 16:54:09

回答

3

应该是很容易,改变charset=ISO-8859-8charset=UTF-8

另外要确保创建页面编码为UTF-8和,如果使用一个数据库,表(或整个数据库)是UTF-8 unicode general

随着UTF-8你可以写出他们出现的字符,不要使用实体。