轉帖請註明本文出自skypupil的部落格(http://blog.csdn.net/u011956441/article/details/44161587),請尊重他人的辛勤勞動成果,謝謝!
我的應用場景是:在一個網頁上當用戶輸入郵箱地址並點擊「發送郵件」按鈕後,調用sendMail.php向用戶發送帶附件的郵件。
遇到的問題是:當附件的名稱是英文名時能正確發送,但是當附件名是中文時,用戶郵箱就收不到附件。以下是我的解決方法:先上sendMail.php程式碼:
rrr
>AddAttachment(iconv('utf-8', 'gb2312', 'pdfs/測試.pdf'), '測試.pdf');」這行。
addAttachment--方法
出自:PHPMailer::addAttachment() .
說明:新增附件。 addAttachment(
$path,$name = '',$encoding = 'base64',$
type = 'application/octet-stream'){} 出自:PHP (>= 4.0.5)函數原型:string , string $
out_charset , string $str )轉換編碼到 out_
charset。
了解了上面兩個方法後,就明白了PHPMailer之所以不能發送中文名稱的附件,是因為PHPMailer不能正確讀取utf-8編碼的中文文件路徑,只要編碼的中文文件路徑,只要將中文編碼文件路徑轉換成gb2312編碼後,就能正確發送了。 最後,附上SMTP伺服器連接埠號碼位址:http://blog.wpjam.com/m/gmail-qmail-163mail-imap-smtp-pop3/
以上就介紹了PHPMailer發送中文名稱附件,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。