【发布时间】:2020-09-16 23:49:24
【问题描述】:
我想在每次有新电子邮件到达收件箱时运行代码。
以下代码在“ThisOutlookSession”中
Public WithEvents oItems as Outlook.Items
Private Sub Application.Startup()
Set oItems = session.GetDefaultFolder(olFolderInbox).items
End sub
Private sub oItems_ItemAdd(ByVal item as object)
Debug.print "New email detected"
End sub
此代码针对 1 - 5 封新电子邮件运行。之后,除非我关闭 Outlook 并重新打开,否则它不会执行。
好像oItems 失去了与“会话”的连接。
【问题讨论】:
-
NewMailEx事件对我来说是一个可靠的触发器,我用它来获取MailID并使用带有GetItemFromID的ID 来获取MailItem... docs.microsoft.com/en-us/office/vba/api/… -
@ProfoundlyOblivious 我在 Excel VBA 方面经验丰富,但对 Outlook vba 非常陌生。我究竟如何实现 NewMailEx?
-
@ProfoundlyOblivious 谢谢老兄/杜德特。这非常有效,并且在我完成的过去 50 封测试电子邮件中完美执行。