Сохранить Outlook.MailItem Async? - PullRequest
0 голосов
/ 30 октября 2018

Есть ли способ сохранить Outlook.MailItem как файл .msg в асинхронном режиме?

Я использую:

MailItem.SaveAs("path", Outlook.OlSaveAsType.olMSG);

Но это медленно.

1 Ответ

0 голосов
/ 30 октября 2018

Не используется объектная модель Outlook - вы не можете использовать вторичный поток в адресном пространстве outlook.exe (надстройка COM): Outlook вызовет исключение. Если вы сделаете это из внешних приложений, все вызовы OOM в любом случае будут перенаправлены в основной поток Outlook.

Поскольку вы пометили свой вопрос как outlook-redemption, Redemption может сделать это - из вашего надстройки сохраните значение Application.Session.MAPIOBJECT в переменной, а также свойство MailItem.EntryID. Во вторичном потоке создайте экземпляр объекта RDOSession (который инициализирует систему MAPI), задайте для его свойства MAPIOBJECT значение, сохраненное в первичном потоке, вызовите RDOSession.GetMessageFromID,, затем вызовите RDOMail.SaveAs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...