【发布时间】:2011-07-08 19:02:43
【问题描述】:
我是用php内部的mail函数来发送邮件的,我把它封装在一个函数里面UTF8的过程中,我在网上找到的。
它有效,我将代码中的电子邮件发送到我的 GMAIL 和我的 EXCHANGE 服务器,在 GMAIL 和我 PC 上的 Outlook 客户端中,我收到了正确的消息。
我的 iPhone 还连接到 Exchange 和 GMAIL 帐户,所以我的 iPhone 上都收到了这两条消息。 iPhone 正确接收 GMAIL 消息,但 EXCHANGE 帐户显示的消息带有乱码,其中非拉丁字符。
下面的示例在主题和正文中发送希伯来语字符。在我的 iPhone 上,可以正确接收希伯来语的主题,但邮件正文中的希伯来语部分是乱码。
任何人都可以对此发表评论吗?也许在您自己的设置上尝试一下?
谢谢,
<?php
function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '') {
$header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}
$mymessage = "Hello <BR>";
$mymessage.= "Received: now<BR/><BR/>";
$mymessage.= "details: שלום שלום<BR/><BR/>";
mail_utf8 ("XXX@gmail.com,XXX@exchangeServer.com", "שלום", $mymessage, "my_mail", "mailer@phpmail.com");
?>
【问题讨论】:
-
顺便说一句,我认为您在发送
text/plain电子邮件时不需要<br />s,PHP_EOL可能会更好。 -
实际上我正在尝试发送 HTML,我只是在此示例中复制了错误的标题