在Outlook中显示新电子邮件

时间:2011-11-16 15:55:51

标签: c# .net outlook office-interop exchangewebservices

  1. Windows应用程序调用业务逻辑
  2. 业务逻辑使用 Exchange Web服务创建新电子邮件,并将电子邮件的条目ID返回给Windows应用程序
  3. Windows应用程序尝试根据电子邮件的条目ID通过 Outlook Interop 查找和显示新电子邮件。
  4. 使用缓存Exchange模式时,上述操作无效。 Outlook仅检查邮件的本地缓存,因为它刚刚在服务器上创建,所以它不会立即在本地使用。

    但是,当帐户未使用缓存Exchange模式时,它可以正常工作,因为Outlook会检查Exchange Server以查找电子邮件。

    所以,问题是:

    如何确保Outlook在查找邮件之前检查Exchange Server而不是本地缓存,或者至少与服务器同步?

    以下是我们用于根据条目ID显示电子邮件的(简化)代码:

    void ShowEmail(string entryId)
    {
      // (COM release and error handling removed for readability)
      var app = new Microsoft.Office.Interop.Outlook.Application();
      var ses = app.Session;
      var mailItem = 
        (Microsoft.Office.Interop.Outlook.MailItem)ses.GetItemFromID(entryId);
      mailItem.Object.Display(true);
    }
    

1 个答案:

答案 0 :(得分:2)

您无法控制邮箱的上传或同步。见this post。如果用户使用缓存Exchange模式 - 则无法使用此功能。

如果您有权访问注册表 - 您可以尝试禁用缓存Exchange模式,然后重新启用它。请参阅this post修改注册表以启用/禁用CEM。