【问题标题】:Mail listener not seeing new mail when the terminal is locked终端锁定时邮件侦听器看不到新邮件
【发布时间】: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 事件?

标签: vba email outlook


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-04-26
    • 2020-06-19
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多