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

如何通过Power Automate根据Excel数据动态修改邮件正文?

批量发送带动态内容邮件的实现方案

当然可以实现这个需求,以下是几种实用的解决方法:

方法1:Outlook + Excel 邮件合并(适合非技术用户)

  • 整理数据源:把所有需要动态替换的内容(比如各类日期、收件人邮箱、姓名等)按列整理到Excel中,确保每一行对应一个收件人的完整变量数据。
  • 制作邮件模板:打开Word,撰写邮件正文,把需要替换的位置用清晰的占位符标记,比如将日期写成「{可用开始日期}」「{可用结束日期}」。
  • 启动邮件合并:在Word的「邮件」选项卡中,点击「开始邮件合并」→选择「电子邮件」,再导入你的Excel数据源文件。
  • 绑定动态字段:选中模板里的占位符,点击「插入合并域」选择Excel对应的列,完成变量绑定。
  • 预览并发送:点击「预览结果」检查内容准确性,确认后点击「完成并合并」→「发送电子邮件」,选择收件人邮箱列和邮件主题,即可批量发送。

方法2:Excel VBA脚本(灵活度更高)

  • 打开Excel文件,按 Alt + F11 打开VBA编辑器。
  • 插入模块:右键点击工作簿→「插入」→「模块」,粘贴以下示例代码(根据你的实际列位置和正文修改):
Sub 批量发送动态邮件()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    Set ws = ThisWorkbook.Sheets("Sheet1") '替换为你的工作表名称
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row '获取A列最后一行数据
    
    Set OutApp = CreateObject("Outlook.Application")
    
    For i = 2 To lastRow '假设第一行是表头,从第二行开始遍历数据
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .To = ws.Cells(i, "B").Value '假设B列是收件人邮箱
            .Subject = "数据可用性通知"
            '拼接正文,替换动态变量
            .Body = "各位好:" & vbCrLf & vbCrLf & _
                    "感谢您的来信。数据仅在" & ws.Cells(i, "A").Value & "至" & ws.Cells(i, "C").Value & "期间可用,请于" & ws.Cells(i, "D").Value & "日后致电。"
            .Send '直接发送,测试阶段可改为.Display查看效果
        End With
        Set OutMail = Nothing
    Next i
    
    Set OutApp = Nothing
    MsgBox "邮件批量发送完成!"
End Sub
  • 配置并运行:确保Outlook已登录,检查代码中列的对应关系是否正确,按F5执行脚本即可。

方法3:Python脚本(适合有编程基础的用户)

  • 安装依赖:执行 pip install pandas pywin32(Windows系统调用Outlook)或 pip install pandas yagmail(用SMTP协议发送)。
  • 示例代码(调用Outlook发送):
import pandas as pd
import win32com.client as win32

# 读取Excel数据源
df = pd.read_excel("你的数据源文件.xlsx")

# 初始化Outlook客户端
outlook = win32.Dispatch('outlook.application')

# 遍历每一行数据发送邮件
for _, row in df.iterrows():
    mail = outlook.CreateItem(0)
    mail.To = row['收件人邮箱']
    mail.Subject = "数据可用性通知"
    # 用f-string拼接正文,替换动态变量
    body = f"""各位好:

感谢您的来信。数据仅在{row['可用开始日期']}至{row['可用结束日期']}期间可用,请于{row['致电日期']}日后致电。"""
    mail.Body = body
    mail.Send()

print("所有邮件发送完成!")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:15:35