Ошибка надстройки Outlook: невозможно выполнить операцию, так как сообщение было изменено - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь создать свою собственную надстройку для Outlook. Моя цель - извлечь некоторые данные из писем и затем переместить эти письма в папку архива. Когда я открываю непрочитанные письма, это работает так, как я ожидаю, но я получаю сообщение об ошибке при открытии непрочитанных писем в тот момент, когда я пытаюсь переместить почту в папку архива. Я получил экземпляр почты от инспектора. Вот код:

 Outlook.MailItem mail = inspector.CurrentItem as Outlook.MailItem;

 var email = mail.UserProperties.Session.CurrentUser.Address;
 Outlook.NameSpace ouNs = Globals.ThisAddIn.Application.GetNamespace("MAPI");
 Outlook.MAPIFolder baseFolder = ouNs.Folders[email];
 var archiveFolder = findFolderRecursive(baseFolder, archiveFolderName);

 mail.Move(archiveFolder);

1 Ответ

0 голосов
/ 08 апреля 2020

Сообщения, возвращаемые инспектором, запрещают некоторые методы. Попробуйте отследить событие Inspector.Close, сохранить идентификатор записи сообщения в переменной и включить таймер (используйте класс Timer из пространства имен Forms - он работает в том же потоке). Когда таймер срабатывает, отключите его, откройте элемент по его идентификатору записи, используя Namespace.GetItemFromID, затем переместите его.

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