当前位置: 首页 > news >正文

【Python实战】一键群发千人定制邮件!基于Excel+模板的自动化群发脚本

一、环境准备与安装

基础环境:Python 3.8+

安装依赖:一行命令搞定

pip install pandas openpyxl pyyaml

⚡ 二、三步极简上手

第一步:配置SMTP邮箱

编辑config.yaml,填入你的邮箱和授权码(⚠️注意是授权码,不是登录密码!

smtp: server: smtp.qq.com # SMTP服务器地址 port: 465 # SMTP端口 username: your_email@qq.com # 邮箱账号 password: your_auth_code # 授权码 use_ssl: true # 开启SSL加密 sender: name: 邮件群发系统 # 发件人显示名称 email: your_email@qq.com # 发件人邮箱 send: interval: 3 # 发送间隔(秒),防封号必备 max_retries: 3 # 失败重试次数 batch_size: 10 # 每批发送数量

💡 常见邮箱SMTP配置速查

  • QQ邮箱smtp.qq.com,端口465,需在邮箱设置开启SMTP获取授权码
  • 163邮箱smtp.163.com,端口465,同理开启POP3/SMTP
  • Gmailsmtp.gmail.com,端口465,需使用App Password

第二步:准备联系人和模板

1. 准备Excel (contacts.xlsx)
必填列为emailname,其他列随意加,模板里都能用!

emailnamecompanycoursedeadline
student1@xxx.com张三某大学Python入门2024-01-31
student2@xxx.com李四某公司数据分析2024-02-15

2. 编写邮件模板 (templates/course_notice.txt)
使用{{字段名}}语法,与Excel表头一一对应:

尊敬的{{name}}同学: 您好!您报名的【{{course}}】课程即将开课! 课程信息: - 课程名称:{{course}} - 报名截止:{{deadline}} 请尽快登录系统完成缴费,名额有限,先到先得! {{sender_name}} {{current_date}}

第三步:运行发送

# 1. 先发一封测试邮件给自己,确保配置无误 python email_sender.py --test your_email@qq.com # 2. 正式批量群发 python email_sender.py \ --contacts contacts.xlsx \ --template course_notice \ --subject "【开课通知】{{course}}即将开课" # 3. 需要带附件?没问题! python email_sender.py \ --contacts customers.xlsx \ --template promotion \ --subject "【限时优惠】产品折扣活动" \ --attachments brochure.pdf price_list.xlsx

📖 三、进阶玩法详解

1. 邮件主题也支持个性化

不仅正文可以替换,--subject参数同样支持模板语法:

python email_sender.py --subject "【专属优惠】{{name}}先生/女士,{{product}}限时折扣" ...

2. 内置系统变量

除了Excel里的自定义列,系统还内置了以下变量可直接使用:

  • {{email}}:收件人邮箱
  • {{name}}:收件人姓名
  • {{sender_name}}:发件人名称(读取配置文件)
  • {{current_date}}:当前日期

3. 命令行参数全览

参数简写说明必填
--config-c配置文件路径❌(默认config.yaml)
--contacts-f联系人Excel文件路径
--template-t邮件模板名称
--subject-s邮件主题
--attachments-a附件文件名列表
--test-发送测试邮件

🚨 四、踩坑避雷指南(FAQ)

❌ 问题1:SMTPAuthenticationError: 535 Login Fail
👉 解决:99%是因为用了登录密码而不是授权码!请去邮箱设置里生成独立的SMTP授权码。

❌ 问题2:发送几封后就连不上/报错421
👉 解决:发送频率太高被服务商限制了。修改config.yaml中的interval: 5(增大间隔),减小batch_size

❌ 问题3:ValueError: Excel文件缺少必需列
👉 解决:检查Excel的第一行表头,必须包含英文的emailname,且不要有空格。

🔒 五、安全与合规提示

作为技术人,用技术提效的同时也要守规矩:

  1. 勿硬编码密码:不要把邮箱密码写在代码里,建议使用环境变量或配置文件(并加入.gitignore)。
  2. 合规发送:确保收件人是自愿接收邮件,邮件内容需合法合规,避免触发反垃圾邮件机制(如:少用夸张词汇、提供退订方式)。
  3. 数据安全:客户的Excel数据妥善保管,切勿上传至开源仓库!

🌟 总结

这个脚本轻量、实用,完美解决了日常运营中“批量又需定制”的邮件发送痛点。如果你也在做社群运营、培训机构或者客户维护,这个工具绝对能帮你省下无数个加班的夜晚!

系统完整源代码和文档地址:https://download.csdn.net/download/wjianwei666/92858004

如果觉得有用,别忘了点赞👍收藏⭐支持一下!有任何Bug或新需求,欢迎在评论区交流~

http://www.jsqmd.com/news/779759/

相关文章:

  • Git、TortoiseGit 与 Beyond Compare 安装配置教程
  • 基于Arch Linux的极简工作站系统paretOS:键盘驱动的高效开发环境构建
  • 如何让魔兽争霸III焕发新生:WarcraftHelper游戏优化终极指南
  • 2026年5月浙江老爹鞋供应链深度解析:口碑与实力兼具的制造力量 - 2026年企业推荐榜
  • 2026年5月食用油批发商优选指南:聚焦郫都区孔雀粮油经营部 - 2026年企业推荐榜
  • SQL利用子查询实现复杂条件排序_嵌套逻辑实现业务规则
  • 从旧金山手机辐射案看SAR合规、FCC监管与商业言论自由
  • DB-GPT-Web:为本地大模型数据库应用构建直观Web界面的实践指南
  • (课堂笔记)游标与动态SQL:使用 CHR(39) 替代拼接单引号
  • Godot ECS框架实战:双模式设计与多线程优化指南
  • AvaKill:为AI代理构建零信任安全防护的实战指南
  • 2026年第二季度湖南瓷砖胶品牌深度解析:安塔新材料的专业之道 - 2026年企业推荐榜
  • 从科幻到芯片:用FPGA与MCU构建《红矮星号》数字逻辑系统
  • Python 抽象基类设计:ABC 模块最佳实践
  • 边缘计算中CNN的软稀疏优化与RISC-V实现
  • SQL示例:为什么普通聚合比窗口函数更高效?
  • 物联网系统设计实战:从安全架构到低功耗优化的工程实践
  • 开源大模型机器人操作评估框架:从仿真到真实世界的AI动手能力测评
  • 2026年现阶段伊宁免砸砖防水服务深度解析:一城一家防水补漏何以成为优选? - 2026年企业推荐榜
  • 泡沫动力学揭示AI学习数学原理
  • MindNLP实战:零代码迁移HuggingFace模型至昇腾NPU与MindSpore
  • 锁相环(PLL)核心原理、设计调试与应用场景全解析
  • 2026年5月新消息:昆明五华区珠宝鉴定机构专业度深度**——以昆明佳德盛奢侈品为例 - 2026年企业推荐榜
  • AI对话备份工具convx:基于Git的本地化版本控制实践
  • Python 函数签名检测:inspect 模块深度应用
  • ARM调试寄存器BRP原理与多线程调试实践
  • 2026年当下长沙推拉门夹丝夹胶玻璃采购指南:湖南福湘钢化玻璃有限公司深度解析 - 2026年企业推荐榜
  • 利用 workbuddy 小龙虾 对CodeBuddy开发历史对话 进行开发总结 提高以后的开发效果
  • 别再只接SWDIO和SWCLK了!STM32 SWD下载电路完整接线指南(含NRST、3.3V、GND详解)
  • 一种不用任何编译器和编辑器写代码方式