VBA Outlook событие, перемещающее электронную почту - PullRequest
3 голосов
/ 04 ноября 2011

Я ищу способ получить событие движущегося элемента / электронного письма в outlook.

Можем ли мы использовать инспектора? Или, может быть, есть обработчик событий, например itemsent или newmail?

Спасибо


Подробнее:

У меня есть 4 или более почтовых ящиков. Каждый из них имеет количество X папок и подпапок (1 из них представляет собой окно с активной ссылкой с миллионами папок). Некоторые из них являются обычным ящиком, и есть люди, которые тянут обычную почту.

Я хочу ловить каждый раз, когда почта перемещается в папку в окне livelink.

1 Ответ

3 голосов
/ 04 ноября 2011

Событие наступает, когда элемент добавляется в коллекцию в папке.Например, предположим, что у вас есть папка «Материал» на один уровень ниже вашей папки «Входящие» по умолчанию.Этот код запускается каждый раз, когда электронное письмо перемещается в эту папку:

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
  Dim olApp As Outlook.Application

  Set olApp = Outlook.Application
  Set Items = GetNS(olApp).GetDefaultFolder(olFolderInbox).Folders("Stuff").Items
End Sub

Private Sub Items_ItemAdd(ByVal item As Object)

  On Error GoTo ErrorHandler

  MsgBox "You moved an item into the 'Stuff' folder."

ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit
End Sub

Function GetNS(ByRef app As Outlook.Application) As Outlook.NameSpace
  Set GetNS = app.GetNamespace("MAPI")
End Function

Вставьте его в ThisOutlookSession и перезапустите Outlook.Всякий раз, когда электронное письмо перемещается в эту папку, вы увидите всплывающее окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...