尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

影刀RPA 邮件合并:批量发送个性化邮件的完整方案

影刀RPA 邮件合并:批量发送个性化邮件的完整方案
📅 发布时间:2026/7/25 6:05:42

影刀RPA 邮件合并:批量发送个性化邮件的完整方案

作者:林焱

需要给客户发500封邮件,每封的内容不一样(收件人姓名、金额、订单号都不同)。这就是邮件合并——用模板+数据源,自动生成个性化邮件并发送。

邮件合并的三要素

  • 模板:邮件的骨架(固定部分)

  • 数据源:Excel或数据库里的个性化数据(变量部分)

  • 合并引擎:Python代码,把模板和数据组装成最终邮件

店群矩阵自动化突破运营极限!

基于Excel数据源的邮件合并

importopenpyxlimportsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipart# 读取数据源defload_recipients(excel_path):wb=openpyxl.load_workbook(excel_path)ws=wb.active headers=[cell.valueforcellinws[1]]recipients=[]forrowinws.iter_rows(min_row=2,values_only=True):recipients.append(dict(zip(headers,row)))returnrecipients# 邮件模板template=""" 尊敬的{姓名}: 您好! 您在{日期}的订单(订单号:{订单号})已发货,预计{预计到达}送达。 订单详情: - 商品:{商品名称} - 数量:{数量} - 金额:¥{金额} 物流单号:{物流单号} 如有问题请联系客服。 祝好! """# 发送defsend_merged_emails(recipients,template,smtp_config):forpersoninrecipients:# 填充模板body=template.format(**person)msg=MIMEMultipart()msg["Subject"]=f"订单{person['订单号']}发货通知"msg["From"]=smtp_config["from_email"]msg["To"]=person["邮箱"]msg.attach(MIMEText(body,"plain","utf-8"))withsmtplib.SMTP_SSL(smtp_config["server"],smtp_config["port"])ass:s.login(smtp_config["from_email"],smtp_config["password"])s.sendmail(smtp_config["from_email"],person["邮箱"],msg.as_string())print(f"已发送:{person['姓名']}({person['邮箱']})")time.sleep(2)# 控制发送频率,避免被限# 使用smtp_config={"server":"smtp.qq.com","port":465,"from_email":"your@qq.com","password":"授权码"}recipients=load_recipients("客户名单.xlsx")send_merged_emails(recipients,template,smtp_config)

带附件的邮件合并

fromemail.mime.baseimportMIMEBasefromemailimportencodersdefsend_with_attachment(person,template,attachment_path,smtp_config):msg=MIMEMultipart()msg["Subject"]=f"您的账单-{person['姓名']}"msg["From"]=smtp_config["from_email"]msg["To"]=person["邮箱"]# 正文body=template.format(**person)msg.attach(MIMEText(body,"plain","utf-8"))# 附件withopen(attachment_path,"rb")asf:part=MIMEBase("application","octet-stream")part.set_payload(f.read())encoders.encode_base64(part)part.add_header("Content-Disposition",f"attachment; filename={person['姓名']}_账单.pdf")msg.attach(part)# 发送withsmtplib.SMTP_SSL(smtp_config["server"],smtp_config["port"])ass:s.login(smtp_config["from_email"],smtp_config["password"])s.sendmail(smtp_config["from_email"],person["邮箱"],msg.as_string())

错误处理与重试

defsafe_send(recipients,template,smtp_config,max_retries=3):success=[]failed=[]forpersoninrecipients:forattemptinrange(max_retries):try:send_merged_emails([person],template,smtp_config)success.append(person)breakexceptExceptionase:ifattempt==max_retries-1:person["error"]=str(e)failed.append(person)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3d59c4ac4c7d47ffb9f74dd40027e73d.png#pic_center)time.sleep(5)# 等5秒再重试time.sleep(1)# 发送间隔# 生成发送报告print(f"发送完成:成功{len(success)},失败{len(failed)}")iffailed:withopen("发送失败列表.txt","w")asf:forpinfailed:f.write(f"{p['姓名']}{p['邮箱']}:{p.get('error','未知错误')}\n")returnsuccess,failed

踩坑实录

坑1:str.format()和花括号冲突

如果你的邮件模板里有{}(比如JSON数据),str.format()会把它当成占位符导致报错。转义花括号:{{表示{,}}表示}。

temu店群自动化报活动案例


坑2:SMTP发送频率限制

QQ邮箱限制每小时发送量、每分钟发送量。大量发送邮件可能会触发临时封禁。建议每条间隔2-3秒,每小时不超过50封。如果量大,用企业邮箱或SendCloud等服务。

坑3:收件人邮箱无效导致发送中断

某个收件人的邮箱不存在或格式错误,整个流程会卡住。用try/except包住每条发送,记录失败的继续下一条。

坑4:邮件被标记为垃圾邮件

原因包括:短时间内大量发送、邮件内容包含大量链接、From地址没有SPF/DKIM记录。解决方法:

  • 发送间隔不要太密
  • 内容少用链接和图片
  • 使用企业邮箱(而非个人免费邮箱)

写在最后

邮件合并是客户运营和内部通知的利器。影刀负责把最新数据写入Excel,Python负责读取数据并发送个性化邮件——你只需要维护好模板和数据源,剩下的全自动。


相关新闻

  • 中兴光猫深度管理:5分钟解锁隐藏工厂模式与永久Telnet访问
  • Chrome 油猴插件(Tampermonkey)脚本精选
  • Android与Unity交互:构建稳定双向通信插件的完整指南

最新新闻

  • Java后端开发实战:新冠物资管理系统设计与实现
  • AI 辅助性能测试——让大模型分析 JFR 文件并给出优化建议
  • 企业级智能Agent搭建实战:从架构设计到业务落地
  • C++ vector底层源码剖析——从扩容机制到内存优化,面试官到底想问什么?
  • Linux命令行截图工具Satty的安装与使用指南
  • 企业级AI Agent平台架构设计:从核心概念到高可用系统实战

日新闻

  • 从国家条件到买方清单,深入理解 ABAP CDS 单值过滤器派生
  • 2026 年当下,齐齐哈尔专业的不锈钢闸门批发厂家哪个好,揭秘!这个工业“铁门”如何实现成本翻倍的效率提升? - 行业甄选官
  • 2026阳极氧化加工厂推荐:从设备规模看硬质氧化技术的成熟应用推荐百正机械 - 栗子测评

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号