Теги XML исчезают из тела письма при перемещении в локальную папку

497
David Balažic

Я использую 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 &lt;age&gt; element 

После перемещения становится:

the customers age is in the <age> element 

Где «неизвестный» тег игнорируется средством визуализации.

Есть идеи, почему это происходит и как это исправить?

Я исключил антивирусное ПО из списка подозреваемых (удалив и очистив его, а затем повторив тест).

Если я изменю настройки учетной записи, включив «Использовать режим кэширования Exchange», то проблема исчезнет (за исключением старых сообщений в локальной папке с данными, которые были повреждены, они остаются неработающими). Это известная проблема с режимом кэширования?

0
Это происходит на другом компьютере, если мы пересылаем письмо другому пользователю? Если это происходит только на этом конкретном компьютере, мы можем попытаться воссоздать файл OST, поскольку это происходит только при включенном режиме кэширования Exchange. Возможно, текущий файл OST поврежден. Steve Fan 5 лет назад 0
@ SteveFan Я попробовал на коллеге ПК, и там это не происходит, но он использует режим кэширования. (У меня была опечатка в вопросе, было «отключение режима кэширования», теперь исправлено на «включение режима кэширования») David Balažic 5 лет назад 0
Как вы перемещаете сообщение в локальную папку данных? harrymc 5 лет назад 0
@harrymc Я двигаюсь с помощью drag'n'drop, с помощью мыши. David Balažic 5 лет назад 0
Что произойдет, если вместо этого вы используете Файл / Сохранить как? harrymc 5 лет назад 0
@harrymc Это то же самое. В режиме онлайн теги ломаются, в режиме кэширования они остаются в порядке. То, что я сделал, было Файл / Сохранить как, а затем откройте сохраненный файл с помощью двойного щелчка (он открывается Outlook). Или я перетаскиваю их в папку данных в Outlook и открываю там. В обоих случаях теги не работают. David Balažic 5 лет назад 0
Я думаю, что единственный вывод - это дизайн. Мне кажется, что при такой же запертой конструкции настоящий экспорт возможен только для локальных сообщений. Или используйте режим кэширования или, возможно, вместо этого [Экспорт или резервное копирование в PST-файл Outlook] (https://support.office.com/en-us/article/export-or-backup-email-contacts-and-calendar-to -an-прогноз-PST-файлов 14252b52-3075-4e9b-be4e-ff9ef1068f91? Ui = EN-US и Rs = EN-US и объявления = US). harrymc 5 лет назад 0
@harrymc Экспорт в онлайн-режиме также портит данные таким же образом. David Balažic 5 лет назад 0
Вывод в том, что вы столкнулись с общей ошибкой (или глупостью). Режим кэширования предлагает обходной путь, возможно, непреднамеренный Microsoft. Возможно, что сценарий VBA мог бы работать лучше: в качестве последней попытки вы могли протестировать пример VBA в статье Microsoft [MailItem.SaveAs Method (Outlook)] (https://msdn.microsoft.com/en- нас / VBA / прогноз-VBA / статьи / MailItem-Примерчик-метод-прогноз). Если вы новичок в VBA, см. [Как использовать редактор VBA в Outlook] (https://www.slipstick.com/developer/how-to-use-outlooks-vba-editor/). harrymc 5 лет назад 0
Это также происходит, когда Outlook работает в безопасном режиме? Не могли бы вы попробовать? Aulis Ronkainen 5 лет назад 0
@AulisRonkainen Да, это так. Я старался. David Balažic 5 лет назад 0

1 ответ на вопрос

0
harrymc

Когда режим кэширования Exchange отключен, сообщения, экспортированные в Outlook 2013, имеют свой экземпляр XML. В частности, XML объект из &lt;заменяется <и &gt;на >. В результате получается не точная копия сообщения.

Это происходит как при перетаскивании в файловую систему, так и в меню Файл / Сохранить как. Я предложил также попробовать VBA, используя пример VBA в статье Microsoft о методе MailItem.SaveAs (Outlook) (см. Как использовать редактор VBA в Outlook ), но я не верю, что это изменит результат.

Мой вывод заключается в том, что это общая ошибка (или плохая реализация) в Exchange. Режим кэширования предлагает обходной путь, возможно, непреднамеренный для Microsoft, когда сообщение записывается в файловую систему из локального кэша как есть. Однако при запросе сообщения с сервера Exchange инстанцирование XML всегда выполняется, и, вероятно, на стороне сервера, поскольку все механизмы экспорта дают одинаковый результат. Локально установленная версия Outlook не выполняет создание экземпляров XML, выполняемых сервером Exchange.

Поэтому, к сожалению, эмпирический вывод заключается в том, что «Режим кэширования Exchange» должен быть включен, чтобы избежать создания экземпляров XML, по крайней мере, на данный момент.