2

我正在开发一个应用程序,我需要在其中读取传入邮件的内容(邮件正文)。为此,我使用下面的代码来触发事件,每次收到新邮件时 -

outLookApp.NewMailEx += new ApplicationEvents_11_NewMailExEventHandler(MailExtractor.outLookApp_NewMailEx);

但是NewMailEx事件不会因为几封邮件而触发。当两三封邮件同时出现时,它似乎没有触发。从理论上讲,它应该为 MS Outlook 收件箱中的每封邮件触发。
我正在使用 MS Outlook 2010。

我如何确保NewMailEx为每封即将到来的邮件触发事件?

4

2 回答 2

1

根据文档“此事件 (NewMailEx) 传递了自上次触发事件以来收件箱中收到的所有项目的条目 ID 列表”。但是,如果您对其进行了测试,但事实并非如此。

使用 ItemAdd 不是最佳选择,因为它也可能不会在每封邮件上触发,您可以在文档中阅读。这也适用于每个文件夹,因此如果用户具有将邮件移动到不同文件夹的服务器规则,您将需要处理多个文件夹。

我对类似要求的解决方案是使用Redemption库,其中Store类具有 OnMessageCreatedEx 事件,该事件会在商店中创建的每个项目上触发。

于 2013-05-13T14:22:52.930 回答
0

这篇文章现在有点老了,但我遇到了同样的问题。正如文档所述,虽然NewMailEx似乎比同时传入多条消息时更可靠NewMail,但它仍然不可靠。Items.ItemsAdd

似乎有一个免费的加载项(MAPI Store Accessor)可以更好地处理多个发送/接收事件,但在通知之前可能会有很长的延迟(最多 30 分钟)。

如果这对于您正在尝试做的事情不可接受,请查看Outlook NewMail 事件:解决方案选项,以获得一篇关于如何推出您自己的更可靠解决方案的好文章。

于 2014-02-23T22:29:19.960 回答