
私は 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 <age> element
移動後は次のようになります:
the customers age is in the <age> element
「不明」タグはレンダラーによって無視されます。
なぜこのようなことが起こるのか、またそれを修正するにはどうすればいいのか、何かご存知ですか?
ウイルス対策ソフトウェアを容疑者のリストから除外しました (アンインストールしてクリーンアップしてからテストを繰り返します)。
「Exchange キャッシュ モードを使用する」を有効にしてアカウント設定を変更すると、問題はなくなります (ただし、ローカル データ フォルダー内の壊れた古いメッセージは壊れたままです)。これはキャッシュ モードの既知の問題ですか?
答え1
Exchangeキャッシュモードが無効になっている場合、Outlook 2013でエクスポートされたメッセージはXMLインスタンス化されます。具体的には、
XMLエンティティの は に、は に<
置き換えられます。 その結果はメッセージの正確なコピーにはなりません。<
>
>
これは、ファイルシステムへのドラッグアンドドロップ、またはメニューのファイル/名前を付けて保存の両方で発生します。Microsoftの記事のVBAの例を使用して、VBAを試すことも提案しました。 MailItem.SaveAs メソッド (Outlook) (見る OutlookのVBAエディタの使い方) ですが、これによって結果が変わるとは思いません。
私の結論は、これは Exchange の一般的なバグ (または不適切な実装) であるということです。キャッシュ モードは、おそらく Microsoft が意図していなかった回避策を提供し、メッセージをローカル キャッシュからそのままファイル システムに書き込みます。ただし、Exchange サーバーからメッセージを要求すると、XML インスタンス化が常に実行され、すべてのエクスポート メカニズムが同じ結果をもたらすため、おそらくサーバー側で実行されます。ローカルにインストールされたバージョンの Outlook は、Exchange サーバーによって実行される XML インスタンス化を実行しません。
したがって、残念ながら、少なくとも現時点では、XML インスタンス化を回避するには、「Cached Exchange Mode」を有効にする必要があるという経験的な結論になります。