繁体   English   中英

EWS-Outlook Interop同步

[英]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函数。

编辑:禁用缓存模式时,一切运行正常,但是一旦我打开它,我就不知道如何强制它获取消息

非常感谢你!

你可以

  1. 等待直到同步完成-使用Namespace.SyncObjects集合,检索第一个SyncObject对象,调用SyncObject.Start然后等待SyncObject.SyncEnd事件触发。

  2. 在扩展MAPI级别(C ++或Delphi)或赎回 (它包装扩展MAPI并可以以任何语言使用)上,通过使用MAPI_NO_CACHE(0x200)标志(扩展MAPI中的IMsgStore :: OpenEntryRDOStore .GetMessageFromID(兑换)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM