跳到主要內容

利用MailMessage 寄信時,主旨過長時在 Thunderbird和Mail.app會亂碼的問題

最近在寫某個簡單的小程式時,因為有寄發提醒郵件的需求,就利用MaiMessage寫了一個簡單的寄信程式,測試都很正常,但是到了ThunderbirdMail.app卻分別出現了截斷與亂碼的問題。


圖:在Thunderbird下的情況
圖:在Mail.app下的情況
圖:在Windows Live Mail則是完全正常



所以要看原始內容到底發生什麼事,原來在13個UTF-8字元時主旨是編碼成
Subject: =?utf-8?B?6KGM5LqL5puG5o+Q6YaS77ya57mz5L+d6Zqq6LK7ICjlgIs=?=
但是到了14個UTF-8字元時卻變成
Subject: =?utf-8?B?6KGM5LqL5puG5o+Q6YaS77ya57mz5L+d6Zqq6LK7ICjlgIvk?=
 =?utf-8?B?uro=?
原來是主旨被MaiMessage切成二段,ThunderbirdMail.app無法解讀。


利用股溝搜尋一下,發現保哥曾經遇到MailMessage發Big5編碼的問題,但是我是以UTF-8寄,應該不一樣,後來發現璉大有遇到類似的Header問題,他用自己寫的class解決,於是我參考這裏的做法,將Subject自行編碼就搞定了。

mailMessage.Subject = string.Format(@"=?UTF-8?B?{0}?=", Convert.ToBase64String(Encoding.UTF8.GetBytes(subject)));

圖:在Thunderbird完全正常了

留言

這個網誌中的熱門文章

DBeaver 介面語言

DBeaver是我個人頗常用的一套跨平台Database管理工具,最近升級後發現Windows版本居然變成簡體中文,而且無法切換為英文。

Personal Bookmark

Java SE 6 + Firefox 2 UI 問題 As I do . Google拋棄了了SOAP API,浮想聯翩 https://www.gandi.net/ VS 2005 SP1中文版推出 Windows Vista中文版下載 ASP.NET 2.0網頁執行管線與快取原理 Cache 2.0快取架構與快取資料自動移除架構圖 flickr sync 分享與試用 SUN Looking Glass 3D圖形介面發布1.0 雅虎勵精圖治推動改革 Wait and see 國內某SOC疑遭駭客入侵 大砲開講 Very Important! 微軟公佈Vista安全程式介面草案 一窺Google開原碼庫房乾坤 qing is writing a dig girl net... wait and see

自然人憑證讀卡機驅動程式

鳥毅用的是第一代的自然人憑證讀卡機,EZ100PU(後來有同事買EZmini可以讀SIM卡似乎更好),每年報稅時用一次。 本來只是要申請些政府業務,一時之間找不到光碟,沒想到在 驅動程式下載 居然看到Linux和Mac的驅動程式,剩下的就是政府單位的網頁和程式應該改版了吧!!!