получать всплывающее сообщение Windows или предупреждение для определенной входящей почты

#powershell #outlook

Вопрос:

у нас есть следующая проблема. нам нужно дополнительное всплывающее сообщение Windows или сообщение с подсказкой в Windows, если в outlook приходит письмо от определенного отправителя. есть ли какие-либо примеры в powershell или каких-либо других рекомендуемых программах?

заранее спасибо

Ответ №1:

Вы можете использовать основные правила Outlook для создания предупреждения на рабочем столе с любым заданным условием, без необходимости в каком-либо скрипте или специальной программе

Если вы хотите, правило также может запустить сценарий, а затем вы можете делать там все, что захотите

Комментарии:

1. как я могу добавить пользовательский скрипт для получения почты в правила Outlook? не могу его найти

2. @chkdsk ознакомьтесь с Правилами и предупреждениями Outlook: Запустите скрипт

3. я добавляю исправление в реестр, чтобы появилось сообщение «запуск от имени скрипта». я добавил следующий код из tachytelic.net/2017/10/… в редакторе vba, но в моих правилах список сценариев пуст

Ответ №2:

Со следующей веб-страницы, https://www.slipstick.com/outlook/rules/outlooks-rules-and-alerts-run-a-script/

Использование VBA

Что-то вроде этого:

 Public Sub ShowMessage(Item As Outlook.MailItem)

'code

End Sub
 

Аргумент должен быть указан как элемент почты или Элемент собрания, чтобы подпрограмма была доступна в Мастере правил в Outlook 2007. В Outlook 2010 и 2013 (и выше) PostItem также работает.

Мастер открытия Правил. В Outlook 2010 и 2013 он находится на главной ленте Outlook, Правила > Управление правилами и предупреждениями. Посмотрите в меню Сервис в более старых версиях. Мастер открытия Правил Нажмите кнопку Создать Правило. Выберите Применить правило для сообщений, которые я получаю, и нажмите кнопку Далее. Выберите свои условия и нажмите кнопку Далее. Выберите Запустить действие сценария (внизу). Завершенное правило запуска сценария Нажмите на сценарий. Выберите сценарий Выберите свой сценарий, нажмите кнопку ОК. Нажмите кнопку Далее, затем завершите выполнение правила.

Комментарии:

1. я добавляю исправление в реестр, чтобы появилось сообщение «запуск от имени скрипта». я добавил следующий код из tachytelic.net/2017/10/… в редакторе vba, но в моих правилах список сценариев пуст

2. С помощью кода, который вы скопировали, а затем по ссылке, которую я вставил в свой ответ, вы последовали этому? Какую версию или Outlook вы используете?

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

4. Пожалуйста, убедитесь, что аргумент должен быть по типу MailItem или MeetingItem, чтобы подпрограмма была доступна в Мастере правил в Outlook 2007. В Outlook 2010 и 2013 (и выше) PostItem также работает

Ответ №3:

Есть несколько способов выполнить эту работу:

  1. Создайте правило в Outlook вручную и назначьте макрос VBA, который может быть вызван правилом. Например:
 Public Sub TestRule(Item As Object)

If(Item.SenderEmailAddress = "eugene@test.com") Then
 MsgBox "Got email!"
End If

End Sub
 
  1. Используйте процедуру VBA для обработки входящих электронных писем. NewMailEx Событие срабатывает при поступлении нового сообщения в папку «Входящие» и до того, как произойдет обработка клиентских правил. Вы можете использовать идентификатор записи, возвращенный в EntryIDCollection массиве, для вызова пространства имен.Получите метод GetItemFromID и обработайте элемент. Это событие срабатывает один раз для каждого полученного элемента, обрабатываемого Microsoft Outlook. Элемент может быть одним из нескольких различных типов элементов, например, MailItem , MeetingItem , или SharingItem . EntryIDsCollection Строка содержит идентификатор записи, соответствующий этому элементу.
 Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
   Dim mai as Object
   Set mai = Application.Session.GetItemFromID(EntryIDCollection)

   If(mai.SenderEmailAddress = "eugene@test.com") Then
     MsgBox "Got email!"
   End If
End Sub
 

Комментарии:

1. Спасибо за ваш ответ. Я только что добавил ваш второй код в редактор VBA. После этого я просто хотел создать правило и добавить свой собственный сценарий, но список сценариев пуст

2. Второе решение не требует дополнительной настройки правил в Outlook. Вам нужно зайти в редактор VBA в Outlook и выбрать Application в качестве источника событий поле с левой стороны, затем в правой части вы сможете выбрать NewMailEx событие, выбрав, какой соответствующий обработчик событий будет добавлен.