[英]EWS - Outlook Interop Synchronize
我正在使用ExchangeServer 2010 SP2和Outlook 2013
首先,我使用EWS将邮件保存到“草稿”文件夹
EmailMessage.Save()
之后,我尝试通过Interop打开邮件,但是我收到一个COMException,该项目不存在
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace mapi = app.GetNamespace("MAPI");
Outlook.MAPIFolder draftFolder = mapi.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDrafts);
//Custom function to get EntryID
string entryId = GetMessageId(email,IdFormat.HexEntryId);
string storeId = draftFolder.StoreID;
MailItem item = null;
try
{
item = mapi.GetItemFromID(entryId, storeId);
}
catch (COMException)
{
//Item not found
}
有什么方法可以强制Outlook将草稿文件夹与Exchange服务器同步?
我用过Session.SendAndRecieve(true)
但它没有显示任何效果,而且我找不到执行所需操作的任何其他Interop函数。
编辑:禁用缓存模式时,一切运行正常,但是一旦我打开它,我就不知道如何强制它获取消息
非常感谢你!
你可以
等待直到同步完成-使用Namespace.SyncObjects
集合,检索第一个SyncObject
对象,调用SyncObject.Start
然后等待SyncObject.SyncEnd
事件触发。
在扩展MAPI级别(C ++或Delphi)或赎回 (它包装扩展MAPI并可以以任何语言使用)上,通过使用MAPI_NO_CACHE(0x200)标志(扩展MAPI中的IMsgStore :: OpenEntry或RDOStore .GetMessageFromID(兑换)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.