Это дополнительный вопрос из Код взаимодействия Outlook выдает ошибку «сообщение было изменено» во второй раз, когда код пытается сохранить почтовый элемент .
При распакованном хранилищеработает хорошо в течение некоторого времени, сегодня я обнаружил клиентскую машину, использующую учетную запись IMAP, что даже распакованное хранилище выдает ошибку MAPI_E_OBJECT_CHANGED при вызове метода RDOMail.Save
.
Вот пример кода C #:
var rdoSession= RedemptionLoader.new_RDOSession();
rdoSession.MAPIOBJECT = new Application().Session.MAPIOBJECT;
var rdoMail = rdoSession.GetRDOObjectFromOutlookObject(mailItem);
var unwrappedRdoStore = rdoSession.Stores.UnwrapStore(rdoMail.Parent.Store);
var unwrappedRdoMail = unwrappedRdoStore.GetMessageFromID(mailItem.entryId);
unwrappedRdoMail.Subject = "new subject";
unwrappedRdoMail.Save();
При вызове Save
выдается следующая ошибка:
System.Runtime.InteropServices.COMException (0x80040109): Error in IMAPIProp::SaveChanges: MAPI_E_OBJECT_CHANGED
ulVersion: 0
Component: Outlook Data File
ulLowLevelError: 0
ulContext: 805634562
Кто-нибудь имеет представление об этой проблеме?