【发布时间】:2022-10-07 21:44:32
【问题描述】:
我想在任何新电子邮件到达特定共享邮箱时运行代码。
当电子邮件到达 INBOX 文件夹时触发该事件。
如果新电子邮件直接发送到其子文件夹(例如 shared@mailbox.com/Inbox/subfolder1),则不会触发该事件。
如果收件箱中的任何子文件夹收到新电子邮件,我应该更改什么以便代码运行?
邮箱有很多子文件夹。此外,它们的结构可能会发生变化。
Option Explicit
Private WithEvents mtFolder As Outlook.Folder
Private WithEvents mtItems As Outlook.Items
Private Sub mtItems_ItemAdd(ByVal Item As Object)
Debug.Print "XXX"
'my CODE
End Sub
Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Set Ns = Application.GetNamespace("MAPI")
Dim objOwner
Set objOwner = Ns.CreateRecipient("shared@mailbox.com")
objOwner.Resolve
If objOwner.Resolved Then
Set mtFolder = Ns.GetSharedDefaultFolder(objOwner, olFolderInbox)
Set mtItems = mtFolder.Items
End If
Set Ns = Nothing
Exit Sub
eh:
End Sub
【问题讨论】:
-
Loop to set up watches on a selection of Outlook folders 演示了如何在多个文件夹上应用 ItemAdd 代码的单个实例。 Can I iterate through all Outlook emails in a folder including sub-folders? 演示了如何获取文件夹。如果成功,请发布答案。如果不成功,由于您是新手,请不要在回答这些帖子时要求澄清,请使用您的代码编辑此问题。