當移動到本機資料夾時,XML 標籤會從電子郵件正文中消失

當移動到本機資料夾時,XML 標籤會從電子郵件正文中消失

我在 Windows 7 上使用 Outlook 2013(均已更新至最新補丁),處於「線上」模式(停用「使用快取 Exchange 模式」設置,通常預設為啟用)。

如果我收到一封包含 XML 標籤的電子郵件(HTML 格式,在 Exchange 伺服器上),例如:

the customers age is in the <age> element

那麼效果很好,但如果我將電子郵件移動到本地資料資料夾並從那裡打開它,文字將如下所示:

the customers age is in the element

XML 標籤消失。

我深入研究了這樣一個事實:在原始訊息中,原始碼是正確的,例如:

the customers age is in the &lt;age&gt; element

移動後變成:

the customers age is in the <age> element

其中「未知」標籤被渲染器忽略。

知道為什麼會發生這種情況以及如何解決它嗎?

我將防毒軟體從嫌疑人清單中排除(通過卸載並清理它,然後重複測試)。

如果我透過啟用「使用快取 Exchange 模式」來更改帳戶設置,那麼問題就消失了(除了本地資料資料夾中已損壞的舊郵件之外,它們仍然損壞)。這是快取模式的已知問題嗎?

答案1

停用快取 Exchange 模式時,Outlook 2013 匯出的郵件將實例化其 XML。具體來說, XML實體 of被和&lt;替換。結果就不是訊息的精確副本。<&gt;>

當使用拖放至檔案系統或選單「檔案/另存為」時,都會發生這種情況。我曾建議也嘗試 VBA,使用 Microsoft 文章中的 VBA 範例 MailItem.SaveAs 方法 (Outlook) (看 如何使用 Outlook 的 VBA 編輯器),但我不相信這會改變結果。

我的結論是,這是 Exchange 中的一個普遍錯誤(或糟糕的實作)。快取模式提供了一種解決方法,可能是 Microsoft 無意的,其中訊息按原樣從本機快取寫入檔案系統。但是,當從 Exchange 伺服器請求訊息時,XML 實例化始終會完成,並且可能在伺服器端完成,因為所有匯出機制都會給出相同的結果。 Outlook 的本機安裝版本不會執行由 Exchange 伺服器執行的 XML 實例化。

因此,不幸的是,經驗結論是必須啟用「快取交換模式」以避免 XML 實例化,至少目前是如此。

相關內容