使用宏规则过滤转发 Outlook 电子邮件

使用宏规则过滤转发 Outlook 电子邮件

你们能帮我修复下面的脚本吗?我需要的是,如果电子邮件正文包含 <,它将转发到我的个人电子邮件。我使用的是 Outlook 2010。以下是示例电子邮件文本:

“太快了!重新启动调制解调器仅需不到 60 秒。”

如果 < 和 60 之间有空格,它会转发到我的电子邮件,但如果没有空格,就不会。

Public Sub FWItem(Item As Outlook.mailitem)
    Dim Email As Outlook.mailitem
    Dim Matches As Variant
    Dim RegExp As Object
    Dim Pattern As String

    Set RegExp = CreateObject("VbScript.RegExp")

    If TypeOf Item Is Outlook.mailitem Then

        Pattern = "(\s[<]\s)"
        With RegExp
            .Global = False
            .Pattern = Pattern
            .IgnoreCase = True
             Set Matches = .Execute(Item.Body)
        End With

        If Matches.Count > 0 Then
            Debug.Print Item.subject ' Print on Immediate Window
            Set Email = Item.Forward
                Email.subject = Item.subject
                Email.Recipients.Add "[email protected]"
                Email.Save
                Email.Send

        End If
    End If

    Set RegExp = Nothing
    Set Matches = Nothing
    Set Email = Nothing
    Set Item = Nothing
End Sub

这是我用来过滤电子邮件正文的模式:

Pattern = "(\s[<]\s)"

但它没有起作用。

答案1

您的问题不清楚。我假设问题出在正则表达式上,而不是电子邮件未发送(或任何其他原因)。

我认为你的模式只需要

(< )

因此,在您的代码中您将使用

Pattern = "(< )"

这将匹配 < 和紧随其后的空格。因此

<60不匹配 < 60匹配 匹配 < 60<60匹配 < Hello匹配

我指出最后一个,因为对我来说,如果有人出于其他原因使用引号,这可能是一个问题……<消息结束>

相关内容