如何提取邮件正文字段内容,修改匹配到固定主题的邮件主题?
实现方案
核心逻辑是通过正则匹配从邮件正文提取指定字段,再按要求拼接后替换原有主题即可,以下是适配你提到的objMail对象的Outlook VBA实现:
1. 核心实现逻辑
- 用正则表达式分别匹配正文里
Division:、Team:后的字段值 - 校验两个字段都提取成功后,按要求的格式拼接新主题
- 调用
objMail.Subject赋值完成修改
2. 完整可运行代码
' 初始化正则对象 Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") regEx.Global = True regEx.MultiLine = True ' 提取Division字段 regEx.Pattern = "^Division:\s*(.+?)\s*$" Dim divisionResult As Object Set divisionResult = regEx.Execute(objMail.Body) Dim division As String If divisionResult.Count > 0 Then division = divisionResult(0).SubMatches(0) End If ' 提取Team字段 regEx.Pattern = "^Team:\s*(.+?)\s*$" Dim teamResult As Object Set teamResult = regEx.Execute(objMail.Body) Dim team As String If teamResult.Count > 0 Then team = teamResult(0).SubMatches(0) End If ' 拼接并修改主题 If division <> "" And team <> "" Then objMail.Subject = "You have received a new notification from ABC -- " & division & " -- " & team ' 修改后需要保存改动的话取消注释下一行 ' objMail.Save End If
3. 适配调整说明
- 如果邮件是HTML格式,将代码里的
objMail.Body替换为objMail.HTMLBody,同时调整正则规则过滤掉HTML标签即可 - 如果字段后不是换行符作为结束标识,调整正则里的结束匹配规则适配你的正文格式即可
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

