php郵件中文亂碼的解決方法:先使用HTML編輯郵件內容;然後設定「Content-Transfer-Encoding: 8Bit」;接著發送郵件的系統名稱和郵件地址;最後設定接收的郵件地址即可。
推薦:《PHP影片教學》
解決PHP mail發送UTF-8中文郵件亂碼
在這裡,我將解決一個問題,也許很多人遇到過,困惑又不知道如何做的問題。
如何發送中文郵件時沒有亂碼?
在這裡我將告訴你如何發送UTF-8編碼格式的中文電子郵件。本文不涉及GBK編碼或GB2312編碼格式的中文郵件。
解決這個其實是很簡單的。請讀下面的程式碼。引用你的電子郵件標題為’=?UTF-8?B?’和’?=’。
你可以選擇使用HTML編輯你的郵件內容,但別忘了使用utf-8字元編碼。
郵件Header內容
MIME-Version: 1.0
MIME版本(MIME-Version),這個頭域在郵件訊息的訊息用一個版本號碼來指明訊息遵從的MIME規範的版本。目前版本是1.0。
Content-Type: text/html; charset=UTF-8;
#支援HTML格式,UTF-8編碼。
Content-Transfer-Encoding: 8Bit
內容傳輸編碼,8位元ASCII碼。
X-Mailer: LixiPHP
發送郵件的系統名,可以隨便寫。
From: =?utf-8?B?发送邮件人的姓名?= <FROM_EMAIL_ADDRESS>
發送的郵件地址
To: =?utf-8?B?接受邮件人的姓名?= <TO_EMAIL_ADDRESS>
接受的邮件地址 Subject: =?utf-8?B?邮件标题?=
郵件標題
#透過查看郵件的源代碼,我可以看到:
PHP Mail代碼
public function send_email($to, $from, $subject, $message, $fromname = ”, $toname=”) { if($toname) { $to = ‘=?UTF-8?B?’.base64_encode($toname).’?= ‘ . $to; } if($fromname) { $from = ‘=?UTF-8?B?’.base64_encode($fromname).’?= ‘ . $from; } $headers = ‘From: ‘.$from."\r\n". "MIME-Version: 1.0\r\n" . "Content-Type: text/html; charset=UTF-8; format=flowed\r\n" . "Content-Transfer-Encoding: 8Bit\r\n" . ‘X-Mailer: PHP/’ . phpversion(); $subject = ‘=?UTF-8?B?’.base64_encode($subject).’?=’; //send email mail($to, $subject, $message, $headers); }
以上是php郵件中文亂碼的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!