以编程方式访问Exchange文件夹中的已归档邮件

时间:2016-09-20 13:50:12

标签: outlook exchange-server activexobject

我试图通过ActiveX接口访问Outlook 2013中的给定文件夹中的所有邮件。我使用Outlook的邮件API(MAPI)来获取所需的文件夹对象。

但是,当我浏览此文件夹对象的所有项目时,会丢失许多消息。实际上,MS Exchange服务器上的消息与Outlook不同步,因为它们太旧了。 (在Outlook中,文件夹以名为“单击此处以查看Microsoft Exchange上的更多内容”的链接结束。单击链接时,Outlook中显示缺少的消息。但是,在此操作之后,它们不会添加到文件夹对象中。)< / p>

如何访问这些消息?是否可以通过Outlook ActiveX界面?如果没有,是否有与MS Exchange服务器等效的接口?

1 个答案:

答案 0 :(得分:1)

要访问较旧(但未归档)的电子邮件,您可以

  1. 将Exchange帐户设置为同步Exchange帐户属性对话框中的所有项目。必须重新启动Outlook。
  2. 将Exchange帐户设置为以编程方式同步所有项目。您可以使用扩展MAPI(仅限C ++或Delphi)执行此操作,需要在MSEMS配置文件部分中设置一个标志。 Redemption(任何语言)都会公开RDOExchangeMailboxStore mHandler.removeCallbacksAndMessages(null); / MonthsToKeepOffline个属性。必须重新启动Outlook。
  3. 在调用DaysToKeepOffline时,使用MAPI_NO_CACHE标志在联机模式下打开父文件夹(仅限扩展MAPI,C ++或Delphi)。 Redemption允许您使用RDOSessionIMsgStore::OpenEntry从任何语言打开文件夹时传递该标记。