Получение информации из сообщения с использованием правила Outlook - PullRequest
0 голосов
/ 28 мая 2018

Я использую Outlook 2016 с двумя учетными записями электронной почты, и я установил правило для вызова сценария VBA, чтобы выполнить некоторые действия с входящими сообщениями на одной из учетных записей.Есть ли способ, с помощью VBA, получить доступ к объекту электронной почты, который вызвал правило, которое я использую?

Мне нужно просто получить электронную почту отправителя каждого сообщения.

PS: я использую POP3, а не Exchange.Кроме того, я попробовал Application_NewMail () вместо правила, но оно не сработало.

1 Ответ

0 голосов
/ 28 мая 2018

При назначении правила правилу подпрограмма макроса VBA должна выглядеть следующим образом:

Public Sub Test(mail as MailItem)
   ' where mail is the object which triggered the rule
   MsgBox mail.SenderEmailAddress
End Sub

Таким образом, вы можете получить адрес электронной почты отправителя из коробки.

Также в качестве возможного обходного пути к правилам Outlook можно рассмотреть обработку события NewMailEx класса Application, которое запускается при получении нового элемента в папке «Входящие».

Это событие вызывается один раз для каждого полученного элемента, который обрабатывается Microsoft Outlook.Элемент может быть одним из нескольких различных типов элементов, например, MailItem, MeetingItem или SharingItem.Строка EntryIDsCollection содержит идентификатор записи, соответствующий этому элементу.Обратите внимание, что это поведение изменилось по сравнению с предыдущими версиями события, когда EntryIDCollection содержал список разделенных запятыми идентификаторов записи всех элементов, полученных в папке «Входящие» с момента последнего запуска события.

Событие NewMailEx возникает, когда новое сообщение поступает в папку «Входящие» и до обработки правила клиента.Вы можете использовать идентификатор записи, возвращенный в массиве EntryIDCollection, чтобы вызвать метод NameSpace.GetItemFromID и обработать элемент.Используйте этот метод с осторожностью, чтобы минимизировать влияние на производительность Outlook.Однако, в зависимости от настроек на клиентском компьютере, после поступления нового сообщения в папку «Входящие» такие процессы, как фильтрация нежелательной почты и правила клиента, которые перемещают новое сообщение из папки «Входящие» в другую папку, могут происходить асинхронно.Не следует полагать, что после возникновения этих событий вы всегда получите увеличение количества элементов в папке «Входящие» на один элемент.

...