你们能帮我修复下面的脚本吗?我需要的是,如果电子邮件正文包含 <,它将转发到我的个人电子邮件。我使用的是 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
匹配
我指出最后一个,因为对我来说,如果有人出于其他原因使用引号,这可能是一个问题……<消息结束>