使用了PHPMailer發(fā)送郵件的朋友帶中文附件名時會出現(xiàn)亂碼,下面我來介紹一個解決辦法,比如我們要發(fā)送的附件是“測試.txt”,如果在添加附件的時候強(qiáng)制使用指定文件名的方式:
$mail->AddAttachment($attach, $attach);
那么發(fā)送過去的附件文件名將會是亂碼,如果不指定:
$mail->AddAttachment($attach, $attach);
那么發(fā)送過去的文件名中的中文干脆沒了,成了“.txt”。
解決辦法:如果想設(shè)置文件名為中文,則在調(diào)用AddAttachment時提供中文的name參數(shù)(第二個參數(shù)),比如代碼如下:
$mail->AddAttachment(‘temp/2011/test.rar’, ‘測試.rar’);
其它問題:發(fā)送中文郵件的時候,中文會出現(xiàn)亂碼,我看了一下源碼,亂碼的產(chǎn)生大概是在將郵件標(biāo)題轉(zhuǎn)成幾個小的=?utf-8?B?...?=時,可能是無意中把中文給截斷了產(chǎn)生的,所以我的修改更簡單而又略微溫柔一點,修改第1185行:
$maxlen = 75 - 7 - strlen($this->CharSet);改成:
$maxlen = 75000 - 7 - strlen($this->CharSet);
新聞熱點
疑難解答