根据附件中的特定内容转发 Outlook 电子邮件

Forwarding Outlook emails based on specific content in attachments

创建自定义规则以根据附件内容转发电子邮件。我不知道如何对附件的内容使用正则表达式。

查看代码 - 我想我只为电子邮件的内容而不是附件的内容做正则表达式。

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"

除了方便将附件保存到磁盘外,Outlook 对象模型中没有任何内容专门提供对文件附件内容的访问。您将需要为要解析的每个专有文件内容类型使用额外的 API。 VBA 确实有可以让您阅读文本文件的打开命令。