You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Outlook VBA实现邮件自动转发的多收件人及自定义正文问题

Outlook 自动转发VBA代码优化方案
Sub AutoForwardAllSentItems(Item As Outlook.MailItem)
    ' -------------------------- 可配置参数 开始 --------------------------
    ' 转发目标收件人列表,增删数组元素即可调整收件人数量
    Const RECIPIENT_LIST As Variant = Array("xxx@xxx.com", "yyy@xxx.com", "zzz@xxx.com")
    ' 自定义正文前缀,{原邮件标题}会自动替换为对应内容,支持HTML格式
    Const CUSTOM_BODY_PREFIX As String = "<p>Hi,您发送的主题为【{原邮件标题}】的邮件已被接收,感谢您的来信!</p><hr>"
    ' -------------------------- 可配置参数 结束 --------------------------
    
    Dim myFwd As Outlook.MailItem
    Dim recipient As Variant
    Dim customBody As String
    
    Set myFwd = Item.Forward
    
    ' 添加所有目标收件人
    For Each recipient In RECIPIENT_LIST
        myFwd.Recipients.Add CStr(recipient)
    Next
    ' 校验所有收件人地址有效性
    If Not myFwd.Recipients.ResolveAll Then
        MsgBox "存在无效收件人地址,转发终止", vbExclamation
        Exit Sub
    End If
    
    ' 拼接自定义正文+原邮件内容
    customBody = Replace(CUSTOM_BODY_PREFIX, "{原邮件标题}", Item.Subject)
    myFwd.HTMLBody = customBody & myFwd.HTMLBody
    
    ' 发送邮件
    myFwd.Send
    
    ' 释放对象
    Set myFwd = Nothing
End Sub

优化说明

  • 多收件人支持:将收件人配置为数组,无需处理逗号/分号分隔格式问题,增删数组元素即可调整收件人数量,新增收件人有效性校验逻辑,避免无效地址导致发送失败
  • 自定义正文支持:将自定义正文设为可配置参数,支持插入原邮件标题变量,修复了原代码中.HTMLBody缺少调用对象的语法错误,保留原邮件完整内容和格式

使用说明

  1. 替换RECIPIENT_LIST数组内的邮箱地址为实际需要的转发目标地址
  2. 调整CUSTOM_BODY_PREFIX内的自定义正文内容,可自行添加HTML标签调整字体、颜色、排版样式
  3. 部署完成后重启Outlook或重新加载宏即可生效,需确认Outlook宏安全配置允许运行该脚本

内容的提问来源于stack exchange,提问作者TS Pham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:54:04