Outlook 加载项不会在应用程序启动时捕获电子邮件 - 应该实施什么挂钩?
Outlook Add-In does not catch emails upon application startup - what hook should be implemented?
我有一个 Outlook 2013 加载项,它在到达时通过 NewEmailEx()
事件处理程序处理电子邮件。
如果 Outlook 正在运行,则效果很好,但如果它未运行,则不会处理这些电子邮件。
我应该在我的 ThisAddIn_Startup()
中包含什么事件处理程序,这样我就可以在启动 Outlook[=11 时运行收件箱中 new/unread 的 "unprocessed" 电子邮件=]?
遗憾的是,当 Outlook 启动时,没有引发事件来指示您的收件箱中有未读邮件。或者在您的加载项启动时更加活跃。
但是您可以获得未读消息的列表并在引发 StartUp 事件时处理它们。
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);
}
}
您还可以在收件箱文件夹上使用 Items.ItemAdd 事件 - 当 Outlook 将邮箱与服务器同步并将新邮件下载到文件夹时,它将触发。
我有一个 Outlook 2013 加载项,它在到达时通过 NewEmailEx()
事件处理程序处理电子邮件。
如果 Outlook 正在运行,则效果很好,但如果它未运行,则不会处理这些电子邮件。
我应该在我的 ThisAddIn_Startup()
中包含什么事件处理程序,这样我就可以在启动 Outlook[=11 时运行收件箱中 new/unread 的 "unprocessed" 电子邮件=]?
遗憾的是,当 Outlook 启动时,没有引发事件来指示您的收件箱中有未读邮件。或者在您的加载项启动时更加活跃。
但是您可以获得未读消息的列表并在引发 StartUp 事件时处理它们。
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);
}
}
您还可以在收件箱文件夹上使用 Items.ItemAdd 事件 - 当 Outlook 将邮箱与服务器同步并将新邮件下载到文件夹时,它将触发。