2010-04-03 50 views
0

我使用梨mail_mime要發送HTML郵件出去,首先UTF-8字符是在Gmail中的Mac郵件搞砸了,但不是。我發現我需要爲get()函數添加參數來糾正MIME消息的HTML部分中使用的字符集。這是默認的ISO。UTF-8的郵件到Mac郵件和Gmail

所以,我已經糾正了這個問題,電子郵件源相貌端正,Gmail目前工作正常,但現在莫名的Mac郵件是有一個問題,儘管它用錯誤的工作之前宣佈的字符集。我嘗試了一堆不同的東西,包括回到錯誤的字符集,但是Mac Mail仍然不能正確地顯示消息。

有沒有人有什麼想法可能會導致此?

下面的代碼中,HTML是在此之前設置:

$params["host"] = "xxx"; 
$params["auth"] = true; 
$params["username"] = "xxx"; 
$params["password"] = "xxx"; 
$params["html_charset"] = "utf-8"; 
$params["head_charset"] = "utf-8"; 
$params["text_charset"] = "utf-8"; 

$text = 'Text version of email'; 
$crlf = "\n"; 

$hdrs = array(
     'From' => 'xxx', 
     'Subject' => 'xxx' 
     ); 

$mime = new Mail_mime($crlf); 

$mime->setTXTBody($text); 
$mime->setHTMLBody($html); 

$body = $mime->get($params); 
$hdrs = $mime->headers($hdrs); 

$mail =& Mail::factory('smtp', $params); 
$send = $mail->send($to, $hdrs, $body); 
if (PEAR::isError($send)) { print($send->getMessage());} else echo "Mail sent to: $to"; 
+0

你能用這種方式顯示一個電子郵件標題的例子嗎?角色是什麼樣的? – 2010-04-03 18:04:03

+0

是你的郵件文本和html有效的utf8嗎? – cweiske 2010-10-12 08:44:46

回答

0

包括在你的頭陣列的內容類型和carset,類似下面應該工作,但我還沒有測試它。

$hdrs = array(
    'From' => 'xxx', 
    'Subject' => 'xxx', 
    'Content-Type' => 'text/html', 
    'charset' => 'UTF-8', 
);