php邮件中文乱码,phpmailer 发送邮件中文乱码问题的解决方法总结
$mail = new PHPMailer();復制代碼
2:設置郵件的編碼;
$mail->Charset='UTF-8';復制代碼
相信有不少朋友是設置成"GBK"或“GB2312”的,我開始也是,后來了解到Mail是國際化的,如果想在像Gmail等那樣的國際化郵箱正確顯示中文,請將編碼設置為“UTF-8”;
3,:設置標題編碼;
這里可能有人會問,都設置了郵件的編碼了,還設置標題編碼做什么。
如果您測試過多種郵箱,你會發現標題中文是亂碼的,沒錯,即使您設置了 $mail->Charset="UTF-8";
既然學習php應該多看看php手冊或留意php.net ,標題亂碼的解決辦法我是在php官網找到答案的 hhtp://.www.php.net/mail。
$mail->Subject ="信件標題"; 改為 $mail->Subject = "=?utf-8?B?" . base64_encode("信件標題") . "?=";
“設計此種編碼是為了使二進制數據可以通過非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。”(來自php手冊 base64_encode() )
這樣,標題的中文亂碼也就解決了。
#---------------------
附,phpmailer發送郵件中文亂碼的問題
phpmailer在默認情況下發出去的郵件可能會出現亂碼。
網上給出解決方案:增加一行
$mail->CharSet = "UTF-8";復制代碼
經過測試,此方法對于163可用,可是QQ郵箱就會變成亂碼,而QQ郵箱在默認的情況下是沒有問題的。
正確的做法:
$mail->CharSet = "GB2312";復制代碼
中文還是用GB2312的好點。
只測試過QQ,163其它的沒有測試。
2012-11-5更新:
$mail->CharSet這個方法應該設置的編碼是要跟你引用phpmailer類的頁面的編碼一至的,比方在1.php里面引用該類發送郵件,則需要設置為1.php這個文件的編碼類型,如何查看文件的編碼,這個問題就不要問了。當然,外部引用的內容最好也要統一文件編碼。
就是這些了,希望以上的內容可以幫助大家解決phpmailer中文郵件發送亂碼的問題。
程序員之家,祝大家學習愉快。
總結
以上是生活随笔為你收集整理的php邮件中文乱码,phpmailer 发送邮件中文乱码问题的解决方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 客户端_【数据库 常见术语
- 下一篇: c调python_应该是史上最全的pyt