Прослушиватели в разных почтовых ящиках

#vba #outlook #outlook-2010

#vba #outlook #outlook-2010

Вопрос:

Я хочу вызвать набор функций, когда получаю электронную почту на разные почтовые ящики (если письмо поступает на abc@outlook.com выполните функцию 1, если письмо поступает на def@outlook.com выполнять функцию2) У меня есть приведенный ниже код для одного почтового ящика, но я не уверен, как его расширить, чтобы также прослушивать другой почтовый ящик без конфликтов. Как я могу настроить прослушиватели для нескольких почтовых ящиков? Любая помощь приветствуется. Спасибо

 Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
   Dim olApp As Outlook.Application
   Dim objNS As Outlook.NameSpace
   Set olApp = Outlook.Application
   Set objNS = olApp.GetNamespace("MAPI")
   ' default local Inbox
   Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub Items_ItemAdd(ByVal item As Object)
'do Stuff to mailitem
End Sub
  

Ответ №1:

Просто добавьте другое событие withEvent для просмотра другой папки:

 Private WithEvents Items As Outlook.Items
Private WithEvents Items1 As Outlook.Items

Private Sub Application_Startup()
   Dim olApp As Outlook.Application
   Dim objNS As Outlook.NameSpace
   Set olApp = Outlook.Application
   Set objNS = olApp.GetNamespace("MAPI")
   ' default local Inbox
   Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
   Set Items1 = objNS.Folders.Item("def@outlook.com").Folders.Item("Inbox").Folders.Item("ASubFolder").Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
'do Stuff to mailitem
End Sub

Private Sub Items1_ItemAdd(ByVal Item As Object)
    'do stuff.
End Sub