基于Outlook VBA的邮件侦听器 - 没有看到mailitem主题

时间:2017-02-02 13:05:42

标签: vba email outlook outlook-vba

我有基于Outlook的VBA代码,可以读取所有传入的邮件 此代码使用MailItem浏览每个邮件,查看发件人,主题和附件 代码的核心使用urn:schemas功能在收件箱中执行sql查询。
因此,如果新邮件到达,则每次触发的进程都会查看整个收件箱而不仅仅是该邮件。 (收件箱保持整洁,处理后物品会被移动)。

查询的核心如下:

Dim Filter as String 
Filter = "urn:schemas:mailheader:subject  like  '%That report - %'"

Dim iMailMatch As Object
Set iMailMatch = Inbox.items.Find(Filter)

我遇到的问题是(偶尔)当机器被锁定(未注销)时,宏将触发新的邮件事件,但即使有匹配的邮件也找不到任何内容。
当我解锁终端并收到新邮件时 - 进程触发并成功接收/处理以前未看到的邮件。

问题仅在终端被锁定时才会显现。因此,我只能认为它与信任特权有关。
当终端被锁定时,有时会成功触发,但似乎只有在终端被锁定后很快收到邮件。

1 个答案:

答案 0 :(得分:0)

不要搜索。 NewMailEx事件将新项的条目ID传递给事件处理程序 - 使用Namespace.GetItemFromID打开项目,然后阅读MailItem.Subject属性。