2005年9月30日

有點遜的電子報軟體

收到某科技傳來的電子報,結果所有已經內嵌在信件中的圖檔都看不到,引起了好奇心。

錯誤的做法:

  1. 信件內容:可以發現圖檔都有含在信件中。
    信件內容
  2. 檢查信件標頭:注意到所有的圖檔都標上同一個 Content-ID。
    信件標頭
    另一個圖檔的標頭資訊
  3. 圖檔的引用方式錯誤:
    錯誤的圖檔引用方式
正確的作法:
  1. 先前寫的 Java 版傳信工具:可正常顯示內嵌圖形。
    正常顯示的內嵌圖形
  2. 信件標頭:這裡指定 Content-ID 為 img。
    圖檔的信件標頭設定
  3. 正確引用圖檔的方式:必須指定要載入 Embed Content 中的附件。
    正確的圖檔引用方式
說明:
  1. Content-ID 是用來識別每一個附檔的代碼,若全部設定成同一個的話要如何識別呢?
  2. 若要在信件中使用已嵌入的附件時,必須在 src="" 的屬性設定中加上 cid: 以及先前在標頭中對附檔指定的 Content-ID 名稱以便讓郵件軟體(MUA)知道要載入的目標物是儲放在信件中。
  3. 所以這個某某科技電子報有問題的原因在於兩點:Content-ID 重覆;附件來源指定的方式錯誤。
在撰寫電子報軟體時請記得:
  1. 如果使用的郵件傳送元件(ex:AspEm@il ) 提供內嵌圖檔功能時依其規定載入附件(如:AspEm@il Chapter 4. Embedded Images)。
  2. 如果沒有提供內嵌圖檔功能時,確認可否在載入附檔時指定 Content-ID。如果不能的話… 麻煩換一個新的元件吧!
  3. 最後要將所有引用到附件的路徑名稱全部代換成 cid:<Content-ID> 。