Outlook 加载项在应用程序启动时不会捕获电子邮件 - 应该实现什么钩子

本文关键字:电子邮件 实现 什么 应用程序 加载项 启动 Outlook | 更新日期: 2023-09-27 18:36:45

我有一个 Outlook 2013 加载项,它通过 NewEmailEx() 事件处理程序处理到达时的电子邮件。

如果 Outlook 正在运行,这很好用,但如果它没有运行,则不会处理这些电子邮件。

我应该在ThisAddIn_Startup()中包含哪个事件处理程序,以便我可以在启动 Outlook 时运行收件箱中新的/未读的"未处理"电子邮件?

Outlook 加载项在应用程序启动时不会捕获电子邮件 - 应该实现什么钩子

您还可以在"收件箱"文件夹上使用 Items.ItemAdd 事件 - 当 Outlook 将邮箱与服务器同步并将新邮件下载到该文件夹时,它将触发该事件。

遗憾的是,当

Outlook 启动时,没有引发一个事件来指示收件箱中有未读邮件。或者在加载项启动时更加出色。

但是,您可以获取未读消息的列表,并在引发启动事件时处理它们。

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    MAPIFolder inbox =
        this.Application.ActiveExplorer().Session.GetDefaultFolder
        (Outlook.OlDefaultFolders.olFolderInbox);
    Items unreadItems = inbox.Items.Restrict("[Unread]=true");
    foreach (var unreadItem in unreadItems)
    {
        // Process item
        Marshal.ReleaseComObject(unreadItem);
    }
}