【问题标题】:Outlook Add-In, right EventhandlerOutlook 加载项,右侧事件处理程序
【发布时间】:2013-06-24 13:28:06
【问题描述】:

我尝试构建一个插件,将附件从具有特定主题的邮件中保存下来。 到目前为止效果很好,但我认为我使用了错误的事件处理程序来满足我的需要。

如果有新邮件进来,它应该开始,然后检查整个收件箱+新邮件。

atm 我正在使用 Microsoft.Office.Interop.Outlook.ApplicationEvents_11_NewMailEventHandler()
所以他只是在寻找没有新邮件的收件箱,因为那时新邮件不是收件箱的一部分

  private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {                 
        this.Application.NewMail += new Microsoft.Office.Interop.Outlook
        .ApplicationEvents_11_NewMailEventHandler(ThisAddIn_NewMail);


    }

我能做些什么呢?

【问题讨论】:

    标签: c# outlook-addin mailitem


    【解决方案1】:

    您可以假设电子邮件将是未读的,因此您应该能够使用 Items.Find/FindNext 来查找未读邮件。或者,您可以存储上次处理电子邮件的日期,然后再次使用 Items.Find/FindNext 来搜索 CreationTime 大于某个值的邮件。

    【讨论】:

    • 好主意,但我认为在我的加载项运行时收到的邮件项目不存在,因为“NewMail”事件在新项目存储在收件箱之前开始,所以我无法搜索新邮件是我的解释......
    • NewMail 触发时,该项目是可访问的。不仅如此,您还可以使用 NewMailEx 事件,它实际上传递了新邮件的条目 id。现在的问题是,如果您正在访问 Exchange 邮箱,则邮件可能会在 Outlook(和您的代码)未运行时到达。然后,当 Outlook 启动时,在线模式下不会触发任何事件(您所拥有的只是收件箱中的新未读邮件),或者在缓存模式的情况下,Items.ItemAdd 甚至会在收件箱文件夹中触发新邮件同步到本地(缓存)存储。
    • 非常感谢!有了这个信息和一些帮助形成这篇文章:stackoverflow.com/questions/8562214/…我成功了:D
    猜你喜欢
    • 2021-10-24
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    相关资源
    最近更新 更多