【问题标题】:Application NewMailEx before any other rules在任何其他规则之前应用 NewMailEx
【发布时间】:2016-02-18 14:01:46
【问题描述】:

我有一个适用于 Outlook 2013 及更高版本的插件。

插件的主要目的是将电子邮件移动到文件夹并根据某些规则更改主题行(不是outlook规则,而是我自己的插件“规则”)。

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
  // ...
  // new email arrives.
  this.Application.NewMailEx += Application_NewMailEx;
}

然后将其移动到一个文件夹,并在邮件到达时更改主题

private async void Application_NewMailEx(string entryIdItem)
{
  Outlook.MailItem newMail = GetEmailWithId(entryIdItem); // get that email

  // ... move email and change the subject
}

但在某些情况下,会触发桌面警报并播放声音(当然基于 Outlook 规则本身)。

在桌面警报中,我可以看到主题尚未更改,因此在我的插件有机会移动消息并更改主题之前应用了 Outlook 规则。

那么,我怎样才能在任何规则、桌面警报或任何东西被触发之前“捕获”一封电子邮件。

换句话说,在邮件到达时如何处理我的插件,然后再应用任何规则,以便 Outlook 规则可以处理新主题等等。

【问题讨论】:

    标签: c# outlook-addin mapi


    【解决方案1】:

    您不能 - 所有这些事件都是异步的,并且它们的顺序是不确定的。

    【讨论】:

    • 你确定吗?您可以订购规则,并在完成某个规则后停止所有规则。所以这会告诉我它们是同步的(至少在 2013 年展望中)。
    • 阳性。规则引擎可能会按顺序执行所有规则,但它会异步获取通知。
    猜你喜欢
    • 2020-12-08
    • 2023-01-05
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多