Открытие RDOMail для MailItem из файла .msg

Есть ли способ создать экземпляр RDOMail для MailItem соответствует сообщению Outlook, открытому из файла .msg?

Мой обычный подход — получить CurrentItem из Inspector, преобразовать его в MailItem, получить его значения EntryID и StoreID и, наконец, загрузить его из RDOSession методом GetMessageFromID.

Однако в случае сообщений, открытых из .msg, свойство EntryID возвращает null. Есть ли другой способ обойти это? Я предполагаю, что вместо этого я мог бы использовать метод GetMessageFromMsgFile, но как мне получить полный путь к сообщению из MailItem?

P.S. В идеале решение должно работать с объектной моделью Outlook 2003.


person User3810621    schedule 26.06.2012    source источник


Ответы (1)


Здесь можно сделать два подхода...

  1. Сохраните MailItem на диск с помощью _MailItem.SaveAs()< /а>. Затем используйте GetMessageFromMsgFile.
  2. Сохраните MailItem в Folder (хранилище), чтобы сохранить его, присвоив ему EntryID и StoreID. Используйте MailItem.Save() и MailItem.Move(tempFolder), чтобы сохранить MSG в папке. Обычно я использую скрытую папку для этого обмена хранилищем. Вам нужно будет периодически очищать эту папку подкачки при запуске или через определенные промежутки времени (в Outlook есть устаревшие блокировки, поэтому лучше использовать try/catches).
person SliverNinja - MSFT    schedule 26.06.2012
comment
Спасибо! Я надеялся на что-то более легкое (с точки зрения производительности), не связанное с сохранением, поскольку эту операцию необходимо выполнять в потоке пользовательского интерфейса, но я думаю, что выберу ваш второй подход. - person User3810621; 26.06.2012