在C#中处理传入电子邮件的赎回

时间:2011-07-07 19:53:36

标签: c# visual-studio-2010 outlook vsto mapi

我正在处理从Exchange服务器收到的传入电子邮件。以前我使用NewMailEx来接收传入的邮件。但这只适用于Outlook在线时。即使Outlook处于脱机状态,我也需要让它工作。

所以我现在开始使用名为Redemption的强大工具。但我无法在这里开始。

我以前的代码供您参考。

 private void ThisAddIn_Startup(object sender, System.EventArgs e)
 {
    _Explorers = this.Application.Explorers;
    _Inspectors = this.Application.Inspectors;

    _Explorers.Application.NewMailEx += new
    Outlook.ApplicationEvents_11_NewMailExEventHandler(Application_NewMailEx);
    outlookNamespace = this.Application.GetNamespace("MAPI");
  }

  private void Application_NewMailEx(string EntryID)
  {
    Outlook.MailItem newMail = (Outlook.MailItem)_Explorers.Application.Session.GetItemFromID(
    EntryID, System.Reflection.Missing.Value);
  }

如何通过兑换获取收到的电子邮件的正文?或者,即使Outlook处于脱机状态,还有其他方法可以触发传入的消息。

我正在使用Outlook 2007和Microsoft Exchange Server并使用Visual Studio 2010进行开发。

1 个答案:

答案 0 :(得分:1)

您还可以在“收件箱”文件夹中使用Items.ItemAdd事件。 当你离线时,RDOSession.NewMailEx也不会触发 - 这就是MAPI的工作方式。消息到达时会触发NewMail事件。从te hserver同步新项目时,只会在父文件夹上触发ITems.ItemAdd事件。