ローカル フォルダーに移動すると、電子メール本文から XML タグが消えます

ローカル フォルダーに移動すると、電子メール本文から XML タグが消えます

私は Windows 7 で Outlook 2013 を使用しています (両方とも最新のパッチに更新済み)。「オンライン」モードです (「Exchange キャッシュ モードを使用する」設定は無効になっていますが、通常はデフォルトで有効になっています)。

たとえば、XML タグを含む電子メール (Exchange サーバー上の HTML 形式) を受信した場合:

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エンティティの は に、は に&lt;置き換えられます。 その結果はメッセージの正確なコピーにはなりません。<&gt;>

これは、ファイルシステムへのドラッグアンドドロップ、またはメニューのファイル/名前を付けて保存の両方で発生します。Microsoftの記事のVBAの例を使用して、VBAを試すことも提案しました。 MailItem.SaveAs メソッド (Outlook) (見る OutlookのVBAエディタの使い方) ですが、これによって結果が変わるとは思いません。

私の結論は、これは Exchange の一般的なバグ (または不適切な実装) であるということです。キャッシュ モードは、おそらく Microsoft が意図していなかった回避策を提供し、メッセージをローカル キャッシュからそのままファイル システムに書き込みます。ただし、Exchange サーバーからメッセージを要求すると、XML インスタンス化が常に実行され、すべてのエクスポート メカニズムが同じ結果をもたらすため、おそらくサーバー側で実行されます。ローカルにインストールされたバージョンの Outlook は、Exchange サーバーによって実行される XML インスタンス化を実行しません。

したがって、残念ながら、少なくとも現時点では、XML インスタンス化を回避するには、「Cached Exchange Mode」を有効にする必要があるという経験的な結論になります。

関連情報