
Я использую Outlook 2013 на Windows 7 (оба обновлены до последних патчей) в «онлайн»-режиме (параметр «Использовать режим кэширования Exchange» отключен, обычно он включен по умолчанию).
Если я получу электронное письмо (в формате HTML, на сервере Exchange), содержащее XML-теги, например:
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
Где тег «unknown» игнорируется рендерером.
Есть идеи, почему это происходит и как это исправить?
Я исключил антивирусное ПО из списка подозреваемых (удалив и очистив его, а затем повторив тест).
Если я изменю настройки учетной записи, включив «Использовать режим кэширования Exchange», то проблема исчезнет (за исключением старых сообщений в локальной папке данных, которые были повреждены, они остаются поврежденными). Это известная проблема с режимом кэширования?
решение1
Когда режим кэширования Exchange отключен, сообщения, экспортированные Outlook 2013, имеют свой XML-экземпляр. В частности,
XML-сущность<
заменяется на и <
на >
. >
Результатом тогда не является точная копия сообщения.
Это происходит как при использовании перетаскивания в файловую систему, так и при использовании меню Файл / Сохранить как. Я также предложил попробовать VBA, используя пример VBA в статье Microsoft Метод MailItem.SaveAs (Outlook) (видеть Как использовать редактор VBA в Outlook), но я не верю, что это изменит результат.
Я пришел к выводу, что это общая ошибка (или плохая реализация) в Exchange. Режим кэширования предлагает обходной путь, возможно, непреднамеренный Microsoft, когда сообщение записывается в файловую систему из локального кэша как есть. Однако при запросе сообщения с сервера Exchange всегда выполняется инстанциация XML, и, вероятно, на стороне сервера, поскольку все механизмы экспорта дают одинаковый результат. Локально установленная версия Outlook не выполняет инстанциацию XML, которая выполняется сервером Exchange.
Итак, к сожалению, эмпирический вывод заключается в том, что для предотвращения создания экземпляров XML необходимо включить «режим кэширования обмена», по крайней мере на данный момент.