【发布时间】:2017-06-19 13:44:16
【问题描述】:
我有读取所有传入邮件的 Outlook VBA 代码。
此代码使用 MailItem 浏览每封邮件,查看发件人、收件人、主题和附件。
代码的核心使用了在收件箱上执行 sql 查询的 urn:schemas 功能。
因此,如果有新邮件到达,触发的进程每次都会查看整个收件箱,而不仅仅是那封邮件。 (收件箱保持整洁,处理时会移动项目。)
查询的核心如下所示:
Dim Filter as String
Filter = "urn:schemas:mailheader:subject like '%That report - %'"
Dim iMailMatch As Object
Set iMailMatch = Inbox.items.Find(Filter)
问题是(偶尔)当机器被锁定(未注销)时,宏会触发一个新的邮件事件,但即使有匹配的邮件,它也不会找到任何东西。
当我解锁终端并且有新邮件到达时 - 进程触发并成功提取/处理以前没有看到的邮件。
问题仅在终端被锁定时才明显。因此我只能认为它与某种信任特权有关。
终端锁定时,有时确实会成功触发,但似乎只有在终端锁定后不久邮件到达时才会触发。
【问题讨论】:
-
你在使用什么事件 NewMailEx 或 ItemsAdd 事件?