Откройте файл «x», вызванный темой письма, содержащей «x» - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь написать код для открытия X-файла (.bat), когда приходит электронное письмо с темой X. Чтобы объяснить немного больше, я хотел бы автоматически открывать файл, когда приходит связанная тема электронной почты; отправитель всегда один и тот же.

Дополнительный пример: электронное письмо, полученное от Службы безопасности со следующей темой «Балконное предупреждение»; файл "alk.bat "должен открыться автоматически.

Я попытался отредактировать следующее решение, но его нужно расширить, и у меня возникла ошибка при компиляции первой строки. Мне жаль, что я нуб об этом языке.

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)

  On Error GoTo ErrorHandler
  Dim Msg As Outlook.MailItem

  If TypeName(item) = "Security" Then
    Set Msg = item

    ' If Msg.Subject = "specific subject" Then

    Call Shell("cmd.exe /C /K " & "ChDir f:\" & Msg.Subject & ".bat", vbNormalFocus)

    End If
End If



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

1 Ответ

0 голосов
/ 18 июня 2019

Событие ItemAdd может не сработать, если вы получаете более 16 предметов одновременно.

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

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