2014年4月2日 星期三

Thunderbird 大量 div 套疊的錯誤

有一份電子報,內容開頭固定是:
<!-- #BeginEditable "可編輯區" --><div style=background-color:>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
...
<DIV> (共225個)
<TABLE> ...內文內容

然後結尾也有好好的閉合起來:
</DIV>
</DIV>
</DIV>
</DIV>
</DIV>
</DIV>
</DIV>
...
</DIV> (共225個)

IE / Outlook 可以正確解析,顯示完整表格內容。
但 Firefox / Thunderbird 會只顯示內容的純文字,其他如 圖<img>、連結<a>、格式樣式甚至<table>的排版等等,完全沒處理。

簡單測試一下:套疊的 div 為:
  160個,正常。
  180個,表格內的文字與連結消失,但圖與樣式排版正常。
  200個,表格內的文字以純文字顯示,無任何格式樣式。

2014年1月26日 星期日

電子商務時報用 thunderbird 看不到

分析郵件原始碼:

... (header 略) ...
Content-Type: multipart/alternative;
 boundary=--boundary_2453_a9dad1cb-b14d-492b-9614-a5e2a7132aab


----boundary_2453_a9dad1cb-b14d-492b-9614-a5e2a7132aab
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

PGh0bWw+DQo8Ym9keSBsZWZ0bWFyZ2luPSIwIiB0b3BtYXJnaW49IjAiIG1hcmdpbndpZHRo
PSIwIiBtYXJnaW5oZWlnaHQ9IjAiIGJnY29sb3I9IiNGRkZGRkYiPg0KPGJyPg0KPHRhYmxl
... (略) ...
IDxicj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K
----boundary_2453_a9dad1cb-b14d-492b-9614-a5e2a7132aab
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-ID: <logo>

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAFAAA/+4AIUFkb2JlAGTAAAAA
AQMAEAMCAwYAAATfAAAKNwAAGh3/2wCEABIODg4QDhUQEBUeExETHiMaFRUaIyIYGBoYGCIn
... (略) ...
ZzLfQgADI5U27d2KyWyiAtwUL4geyoy0eIjsAF7t1HumgtsQosANAAPsX//Z
----boundary_2453_a9dad1cb-b14d-492b-9614-a5e2a7132aab--


只有 logo 有顯示出來,base64 編碼的圖沒問題。

html 內文看不到,但本身沒有問題。
只要把郵件原始碼裡的 logo 圖砍掉(直接在 html 那段的 boundary 後面加上 -- 做終結),html 內文就可以正常顯示。
可能是 ThunderBird 要求比較嚴格,不允許把圖放在 multipart/alternative 裡?會用後面的附圖,取代掉 html 正文。
一般附圖、附件等等應該是要用 multipart/mixed,請參閱 MIME 的 RFC 或 wiki

把郵件原始碼裡的 multipart/alternative 改成 multipart/mixed 也可以正常顯示。

說到底就是 電子商務時報 不符合 MIME 標準,遇上堅持標準的 Thunderbird。