1
如何使用Pear
正確設置多部分電子郵件的文本編碼?PHP梨電子郵件文字編碼不例外
我看了很多例子,我相信我設置正確。但是,當發送電子郵件時,即使我指定UTF-8
,他們也會到達charset=ISO-8859-1
。
當我決定發送包含文本和HTML部分的多部分電子郵件時,就會出現此問題。我曾嘗試設置內容類型,但似乎沒有什麼區別。
以下是我正在使用的代碼。任何建議感激。
function send_html_email($to, $from, $subject, $html, $plainTxt) {
require_once "Mail.php";
require_once "Mail/mime.php";
$host = "ssl://secure.xxx.com";
$port = "xxx";
$username = "xxx";
$password = "xxx";
$headers = array (
'charset' => 'UTF-8',
'From' => $from,
'To' => $to,
'Subject' => $subject,
'MIME-Version' => "1.0"
);
$crlf = "\n";
$mime = new Mail_mime($crlf);
$mime->setHTMLBody($html);
$mime->setTXTBody($plainTxt);
$body = $mime->get();
$headers = $mime->headers($headers);
$smtp = Mail::factory('smtp', array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
}
Thx,其實我找到了解決辦法,但除了它必須以另一種方式指定外,沒有其他答案。它在這個頁面的評論部分http://pear.php.net/manual/en/package.mail.mail-mime.example.php – user2112641 2013-04-09 20:44:14
我發現了修復,我想它需要以不同的方式指定! 您將一組參數傳遞給mime get函數,如下所示。 '$ mimeparams ['text_encoding'] =「8bit」; $ mimeparams ['text_charset'] =「UTF-8」; $ mimeparams ['html_charset'] =「UTF-8」; $ mimeparams ['head_charset'] =「UTF-8」; $ body = $ mime-> get($ mimeparams);' 似乎沒有記錄在一切那麼好。在用戶註釋區域找到它。 [http://pear.php.net/manual/en/package.mail.mail-mime.example.php] – user2112641 2013-04-09 20:57:17