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