根据附件中的特定内容转发 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 确实有可以让您阅读文本文件的打开命令。
创建自定义规则以根据附件内容转发电子邮件。我不知道如何对附件的内容使用正则表达式。
查看代码 - 我想我只为电子邮件的内容而不是附件的内容做正则表达式。
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 确实有可以让您阅读文本文件的打开命令。