Пересылка электронных писем Outlook на основе определенного содержимого во вложениях - PullRequest
1 голос
/ 12 июня 2019

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

См. Код - я думаю, что я использую Regex только для содержимого письма, а не для вложений.

Option Explicit
Public Sub Forward(Item As Outlook.MailItem)
    Dim M1 As MatchCollection
    Dim M As Match
    Dim Reg1 As Object
    Dim myForward As Object

    Set Reg1 = New RegExp

    With Reg1
        .Pattern = "(Next year\s*(\w*)\s*)"
        .Global = True
    End With

    If Reg1.Test(Item.Body) Then
        Set M1 = Reg1.Execute(Item.Body)
        For Each M In M1
            Debug.Print M.SubMatches(0) ' Immediate Window

            Item.Subject = Item.Subject & " - Next year"
            Item.HTMLBody = "<HTML><BODY>Assignments for next year. </BODY></HTML>" & objForward.HTMLBody

        Next
    End If

    Item.Save

    Set myForward = Item.Forward
    myForward.Recipients.Add "a@aaa.aa"
    myForward.Display
End Sub

Я хочу, чтобы вывод был: - Пересылать сообщения электронной почты - Новая тема: [Item.Subject] & "- Next year"

письма для пересылки: - электронные письма, содержащие вложения, содержащие текст: «Следующий год»

1 Ответ

1 голос
/ 12 июня 2019

В объектной модели Outlook нет ничего, что обеспечивало бы доступ к содержимому файлового вложения, кроме облегчения сохранения вложения на диск. Вам нужно будет использовать дополнительные API для каждого проприетарного типа содержимого файла, который вы хотите проанализировать. VBA имеет команду Open, которая позволит вам читать текстовые файлы.

...