我有基于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)
我遇到的问题是(偶尔)当机器被锁定(未注销)时,宏将触发新的邮件事件,但即使有匹配的邮件也找不到任何内容。
当我解锁终端并收到新邮件时 - 进程触发并成功接收/处理以前未看到的邮件。
问题仅在终端被锁定时才会显现。因此,我只能认为它与信任特权有关。
当终端被锁定时,有时会成功触发,但似乎只有在终端被锁定后很快收到邮件。
答案 0 :(得分:0)
不要搜索。 NewMailEx事件将新项的条目ID传递给事件处理程序 - 使用Namespace.GetItemFromID
打开项目,然后阅读MailItem.Subject
属性。