Ошибка предварительного просмотра почты после настройки HTMLBody

Я разрабатываю надстройку vsto для Outlook.

Пытаюсь установить HTMLBody почты. Однако, если открываемое мной письмо находится в папке Drafts, я могу установить HTMLBody сообщения, и показанный предварительный просмотр будет нормальным. Но если почта присутствует в папке Deleted Items, свойство HTMLBody письма установлено, но предварительный просмотр просто не показывает обновленное содержимое. Есть ли способ обновить превью? Или я что-то упускаю?

Обновление 1:

У меня есть отдельная область формы для почтового элемента. У меня есть черновик, над которым я работаю. Допустим, это исходное HTML-содержимое A. Допустим, я устанавливаю для свойства HTMLBody сообщения значение B после перехода к области формы. Но почту пока не сохраняю. Поэтому, когда я возвращаюсь к корпусу почты, я вижу изменения (в теле письма отображается B). Конечно, если я не сохраню, изменения будут потеряны.

Но теперь я удаляю черновик, и он перемещается в папку «Удаленные». Содержимое HTML по-прежнему является A, поскольку оно не было сохранено. Теперь, когда я открываю этот черновик (из папки удаленных элементов) и перехожу к форме, я устанавливаю для свойства HTMLBody значение B . Но это изменение не отображается, когда я возвращаюсь к телу письма. В теле письма по-прежнему отображается A. (Инспектор все еще открыт, но не закрыт). Но когда я проверяю свой отладчик, свойство HTMLBody имеет значение B. Почему?


person Teja    schedule 30.06.2016    source источник
comment
Вы сохраняете сообщение?   -  person Dmitry Streblechenko    schedule 30.06.2016
comment
Нет. Я не сохраняю сообщение. Но то же самое работает, если почтовый элемент находится в черновиках!   -  person Teja    schedule 30.06.2016
comment
@Dmitry Streblechenko Если я прикреплю отладчик, я увижу, что свойство HTMLBody установлено. Но в теле письма это не отображается! Я делаю что-то неправильно?   -  person Teja    schedule 30.06.2016


Ответы (1)


Вам необходимо сохранить сообщение (MailItem.Save), иначе изменения не сохранятся. Если сообщения перемещаются в папку «Удаленные», это физически другое сообщение, и оно не переносит несохраненные изменения.

person Dmitry Streblechenko    schedule 30.06.2016
comment
Я обновил вопрос, добавив более подробную информацию. Вы можете проверить? - person Teja; 30.06.2016
comment
Так или иначе, вам нужно сохранить сообщения, чтобы увидеть изменения. Если вы этого не сделаете, все ставки отключены. - person Dmitry Streblechenko; 30.06.2016
comment
Да, если я хочу, чтобы эти изменения были видны в следующий раз, когда я открою письмо, мне придется сохранить его. Но у меня просто инспектор открыт в режиме редактирования. И я установил свойство HTMLBody. Разве это не должно быть видно в инспекторе в этот момент? То же самое работает, если элемент из папки черновиков. Почему? Я все еще что-то упускаю? - person Teja; 30.06.2016
comment
Использование Inspector.WordEditor для внесения изменений, пока элементы все еще отображаются, может быть лучшей идеей. - person Dmitry Streblechenko; 30.06.2016
comment
Мне удалось отладить свою проблему. Проблема заключалась в том, что когда моя почта была перемещена из черновика в удаленные элементы, надстройка все еще ссылалась на более старый объект mailitem, который находился в черновике. Таким образом, мои изменения никогда не обновлялись. Я усвоил одну важную вещь: при использовании formregions всегда обращайтесь к currentItem с помощью this.OutlookItem - person Teja; 08.07.2016