如何在Outlook VBA自动转发邮件代码中添加抄送及正文内容?
修改Outlook VBA代码以添加抄送地址和自定义转发正文
我已经实现了基于Outlook VBA的邮件自动转发功能,但需要修改现有代码,添加抄送邮箱地址和自定义正文内容。当前使用的代码如下:
Sub FwdSelToAddr() Dim objOL As Outlook.Application Dim objItem As Object Dim objFwd As Outlook.MailItem Dim strAddr As String Dim objRecip As Outlook.Recipient Dim objReply As MailItem On Error Resume Next Set objOL = Application Set objItem = objOL.ActiveExplorer.Selection(1) If Not objItem Is Nothing Then strAddr = ParseTextLinePair(objItem.Body, "Email:") If strAddr <> "" Then Set objFwd = objItem.Forward objFwd.To = strAddr objFwd.Display Else MsgBox "Could not extract address from message." End If End If Set objOL = Nothing Set objItem = Nothing Set objFwd = Nothing End Sub
修改后的代码
Sub FwdSelToAddrWithCCAndCustomBody() Dim objOL As Outlook.Application Dim objItem As Object Dim objFwd As Outlook.MailItem Dim strAddr As String ' 新增变量存储抄送地址和自定义正文 Dim strCCAddr As String Dim strCustomBody As String On Error Resume Next Set objOL = Application Set objItem = objOL.ActiveExplorer.Selection(1) If Not objItem Is Nothing Then strAddr = ParseTextLinePair(objItem.Body, "Email:") ' 替换为实际的抄送邮箱和自定义正文 strCCAddr = "cc@yourdomain.com" strCustomBody = "您好:" & vbCrLf & vbCrLf & "这是自动转发的邮件,相关事宜请及时跟进。" & vbCrLf & vbCrLf & "顺颂商祺" & vbCrLf & "自动邮件处理系统" If strAddr <> "" Then Set objFwd = objItem.Forward objFwd.To = strAddr ' 设置抄送地址 objFwd.CC = strCCAddr ' 自定义正文 + 原邮件内容(若不需要原内容,直接赋值strCustomBody即可) objFwd.Body = strCustomBody & vbCrLf & vbCrLf & objFwd.Body objFwd.Display Else MsgBox "无法从邮件中提取目标地址。" End If Else MsgBox "请先选中一封需要转发的邮件。" End If ' 释放对象资源 Set objOL = Nothing Set objItem = Nothing Set objFwd = Nothing End Sub
关键修改说明
- 新增
strCCAddr和strCustomBody变量,用于定义抄送邮箱和自定义正文,直接替换成你需要的内容即可 - 通过
objFwd.CC = strCCAddr为转发邮件添加抄送地址 - 自定义正文部分采用「自定义内容 + 原邮件内容」的组合,若不需要保留原邮件内容,直接写
objFwd.Body = strCustomBody - 补充了未选中邮件时的提示,优化用户体验
- 移除了原代码中未使用的
objRecip和objReply变量,精简代码结构
内容的提问来源于stack exchange,提问作者Aadit
相关产品推荐
相关产品推荐

