寄出的信件內容被截斷
適用範圍:Outlook Express 6 + Windows XP SP2
提醒:2005年的問題,今天應該不會發生
最近非常多的網友都問起寄出的郵件會被截掉的問題,就是只出現前幾行,後面的內容全都不見了。
分析之後發現,這些被截掉的信件特徵都是:
- 安裝了 Windows XP SP2 的環境。
- 寄出即被截斷,在寄件備份裡的信就是被截斷的。
- 純文字格式的信件( TEXT)並不會被截斷,似乎只有 HTML 信件才會產生這種行情況。
- 似乎只發生在繁體中文 Windows XP SP2作業系統。
從這些特點觀察,信件在編碼寄出的時候,就是壞的了(HTML email 無論什麼內容,都要經過編碼,轉成純文字ASCII,才能送出,編碼方法有 Base64、Quoted Printable 等等)。
Outlook Express 預設編碼都是 Quoted Printable(Outlook 也是採用Quoted Printable),所以,解決這個問題,可以從改變編碼方式來測試。
開啟Outlook Express,到「工具」>>「選項」>>「傳送」,在郵件傳送格式那裡,按 HTML設定,MIME編碼改為Base64,勿選 Quoted Printable。
接著,按純文字設定,MIME改成Base64,或選 Uuencode,總之,就是不要設為 Quoted Printable(註一)。不過純文字似乎都沒遇到被截斷的問題,如果你的寄出的郵件都很正常,就不必做以上的改變。
改變編碼後,測試看看能否解決。
如果解決了,就代表的確是 Quoted Printable 編碼出了問題。依照回報的問題環境,似乎都是安裝了 Windows XP SP2 之後才發生的。
我並不清楚 XPSP2 是否有更動原先 Outlook Express 6 的編碼相關元件,但如果的確是安裝了 SP2 才發生,這是很嚴重的瑕疵,如此明顯的錯誤、不須特別的步驟技巧,就能顯現的錯誤,測試人員該打屁股了。
我原本建議的測試方法是改成「Base64」或「無」,不過有兩三位網友和我反映,在他們的機器上,編碼若為設成「無」仍然會被截斷,但設為「Base 64」的話,就通過測試了。
由此看來,已確定「Base 64」是不會把信件截斷的,特提供這條資訊與大家分享。
2005/3/17 補記:
微軟已經發佈修正程式,有關此修正的詳細內容請至以下網址閱讀:
http://support.microsoft.com/kb/887797
關於此瑕疵的修補程式:
http://www.microsoft.com/downloads/details.aspx?
familyid=785c35bb-0f03-4f2d-9e1c-66c9934b4610&displaylang=zh-tw