SmtpClient發(fā)送郵件時(shí)附件名稱亂碼
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
在用戶環(huán)境發(fā)現(xiàn)一個(gè)現(xiàn)象,使用System.Net.Mail.SmtpClient發(fā)送郵件,當(dāng)附件名包含中文且長度較長時(shí),最終的郵件里附件名會(huì)亂掉,寫個(gè)簡單的測(cè)試程序:
使用Foxmail接收郵件,然后查看郵件原始信息,發(fā)現(xiàn)附件部分的MIME居然是這樣的: 這個(gè)怪異的name導(dǎo)致了在郵件客戶端里顯示亂碼。換不同的機(jī)器測(cè)試,有些機(jī)器是正常的,說明與軟件環(huán)境有關(guān)。正常的郵件應(yīng)該是這樣的: 研究了一下,發(fā)現(xiàn)是.Net Framework的BUG,詳見微軟網(wǎng)站:http://support.microsoft.com/kb/2402064, 當(dāng)附件名超過41個(gè)utf8 byte時(shí),會(huì)錯(cuò)誤的進(jìn)行2次編碼導(dǎo)致的。 補(bǔ)丁見 https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31723。 如果服務(wù)器未升級(jí),可以暫時(shí)修改程序來避開這個(gè)BUG,主要是手工指定附件的名稱:
此時(shí)收到的郵件是這樣的,注意劃紅線部分: 該文章在 2017/11/8 0:20:10 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |