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

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

一、环境准备与安装基础环境Python 3.8安装依赖一行命令搞定pip install pandas openpyxl pyyaml⚡ 二、三步极简上手第一步配置SMTP邮箱编辑config.yaml填入你的邮箱和授权码⚠️注意是授权码不是登录密码smtp: server: smtp.qq.com # SMTP服务器地址 port: 465 # SMTP端口 username: your_emailqq.com # 邮箱账号 password: your_auth_code # 授权码 use_ssl: true # 开启SSL加密 sender: name: 邮件群发系统 # 发件人显示名称 email: your_emailqq.com # 发件人邮箱 send: interval: 3 # 发送间隔秒防封号必备 max_retries: 3 # 失败重试次数 batch_size: 10 # 每批发送数量 常见邮箱SMTP配置速查QQ邮箱smtp.qq.com端口465需在邮箱设置开启SMTP获取授权码163邮箱smtp.163.com端口465同理开启POP3/SMTPGmailsmtp.gmail.com端口465需使用App Password第二步准备联系人和模板1. 准备Excel (contacts.xlsx)必填列为email和name其他列随意加模板里都能用emailnamecompanycoursedeadlinestudent1xxx.com张三某大学Python入门2024-01-31student2xxx.com李四某公司数据分析2024-02-152. 编写邮件模板 (templates/course_notice.txt)使用{{字段名}}语法与Excel表头一一对应尊敬的{{name}}同学 您好您报名的【{{course}}】课程即将开课 课程信息 - 课程名称{{course}} - 报名截止{{deadline}} 请尽快登录系统完成缴费名额有限先到先得 {{sender_name}} {{current_date}}第三步运行发送# 1. 先发一封测试邮件给自己确保配置无误 python email_sender.py --test your_emailqq.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❌ 问题1SMTPAuthenticationError: 535 Login Fail 解决99%是因为用了登录密码而不是授权码请去邮箱设置里生成独立的SMTP授权码。❌ 问题2发送几封后就连不上/报错421 解决发送频率太高被服务商限制了。修改config.yaml中的interval: 5增大间隔减小batch_size。❌ 问题3ValueError: Excel文件缺少必需列 解决检查Excel的第一行表头必须包含英文的email和name且不要有空格。 五、安全与合规提示作为技术人用技术提效的同时也要守规矩勿硬编码密码不要把邮箱密码写在代码里建议使用环境变量或配置文件并加入.gitignore。合规发送确保收件人是自愿接收邮件邮件内容需合法合规避免触发反垃圾邮件机制如少用夸张词汇、提供退订方式。数据安全客户的Excel数据妥善保管切勿上传至开源仓库 总结这个脚本轻量、实用完美解决了日常运营中“批量又需定制”的邮件发送痛点。如果你也在做社群运营、培训机构或者客户维护这个工具绝对能帮你省下无数个加班的夜晚系统完整源代码和文档地址https://download.csdn.net/download/wjianwei666/92858004如果觉得有用别忘了点赞收藏⭐支持一下有任何Bug或新需求欢迎在评论区交流~

相关文章:

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

一、环境准备与安装 基础环境:Python 3.8 安装依赖:一行命令搞定 pip install pandas openpyxl pyyaml⚡ 二、三步极简上手 第一步:配置SMTP邮箱 编辑 config.yaml,填入你的邮箱和授权码(⚠️ 注意是授权码&#…...

告别混乱!用泛微E9 ESB的模块与接口管理,搭建清晰的企业服务目录

企业级ESB治理实战:用泛微E9构建高可维护的服务目录体系 当企业数字化进程加速,ERP、CRM、MES等系统间的接口数量呈指数级增长。某制造业客户曾向我展示他们的ESB平台——超过2000个未分类的接口像一团纠缠的线球,每次系统升级都像在雷区排爆…...

从场景化需求到技术参数:构建个人音频工具包的实战指南

1. 耳机选购的底层逻辑:从“听个响”到“场景化工具”我家里有个抽屉,专门用来放耳机,数了数,不下十副。从最早有线、笨重的头戴式,到如今小巧到几乎隐形的真无线,每一副都对应着我生活中某个特定的片段。这…...

物联网系统设计实战:从安全架构到低功耗优化的工程实践

1. 物联网热潮下的冷思考:我们真的准备好了吗?最近几年,物联网(IoT)和工业物联网(IIoT)绝对是科技圈最炙手可热的话题之一。无论是行业峰会、技术论坛还是产品发布会,几乎言必称IoT。…...

从科幻到芯片:用FPGA与MCU构建《红矮星号》数字逻辑系统

1. 项目概述:一次怀旧之旅与可编程逻辑的意外共鸣最近,我经历了一次纯粹由个人兴趣驱动的“考古”发现,它让我这个在电子设计自动化(EDA)和可编程逻辑领域浸淫了二十多年的老工程师,感到了一种久违的、孩子…...

开源大模型机器人操作评估框架:从仿真到真实世界的AI动手能力测评

1. 项目概述:当开源大模型遇上“机械爪”最近在AI圈子里,一个名为bejranonda/openclaw-eval的项目引起了我的注意。乍一看这个标题,你可能会有点懵——“openclaw”是开源爪子?“eval”是评估?这俩词组合在一起&#x…...

边缘计算中CNN的软稀疏优化与RISC-V实现

1. 边缘计算场景下的CNN计算优化挑战卷积神经网络(CNN)在计算机视觉领域已经展现出强大的能力,但计算密集性始终是其部署到边缘设备的主要障碍。以经典的LeNet-5架构为例,仅第一层卷积就需要执行86,400次乘加运算(MAC&…...

DB-GPT-Web:为本地大模型数据库应用构建直观Web界面的实践指南

1. 项目概述:一个为本地大模型数据库应用量身定制的Web界面如果你正在本地部署像DB-GPT这类数据库智能应用,并且厌倦了在命令行里敲指令,或者觉得原始的API调用不够直观,那么eosphoros-ai/DB-GPT-Web这个项目,很可能就…...

Digi ConnectCore MP13 SoM:工业级嵌入式系统模块解析

1. Digi ConnectCore MP13 SoM 核心架构解析Digi International最新推出的ConnectCore MP13系统模块(SoM)采用了STMicroelectronics刚发布的STM32MP13 Cortex-A7微处理器架构。这款SoM的定位非常明确——为工业控制、医疗设备和智能能源等专业领域提供高集成度的嵌入式解决方案…...

GPAK5混合信号可编程器件:重塑嵌入式设计的硬件协处理器

1. 项目概述:当FPGA遇上“超级胶水”,GPAK5如何重塑嵌入式设计在嵌入式系统开发这个行当里干了十几年,我经手过无数“胶水逻辑”电路。所谓“胶水逻辑”,就是那些不起眼但不可或缺的小芯片——几个与非门、一个施密特触发器、一个…...

AI领域工作与入门指南

A bit of AI - 第7集 在AI领域工作是什么感觉?如何开始学习AI?本周又有什么新动态?欢迎收看这档由云倡导者Henk和Amy主持的30分钟节目。在本节目中,我们将与每日使用AI的嘉宾进行对话,并向您推荐每周的MS Learn学习模块…...

Python 函数签名检测:inspect 模块深度应用

Python 函数签名检测:inspect 模块深度应用 1. 技术分析 1.1 inspect 模块概述 inspect 模块提供了检查对象内部结构的能力,特别是函数和类的签名: import inspectdef func(a, b: int 10, *args, **kwargs):passsignature inspect.signatur…...

泡沫动力学揭示AI学习数学原理

日常泡沫如何揭示人工智能的秘密逻辑 泡沫不仅仅是静止的——它们的行为就像具有学习能力的人工智能,在表面之下不断进行重组。 日期: 2026年1月15日 来源: 某机构工程与应用科学学院 摘要: 长期以来,人们认为泡沫的行为类似玻璃,气泡在微观层…...

Python 抽象基类设计:ABC 模块最佳实践

Python 抽象基类设计:ABC 模块最佳实践 1. 技术分析 1.1 抽象基类定义 抽象基类(Abstract Base Class)是定义接口的类,不能直接实例化: from abc import ABC, abstractmethodclass Shape(ABC):abstractmethoddef area(…...

ARM Trace Buffer架构与调试优化实战

1. ARM Trace Buffer Extension架构解析Trace Buffer Extension是ARM架构中用于实时追踪程序执行流的关键组件,它通过专用的硬件缓冲区和精密的控制机制,为开发者提供了低开销、高精度的程序执行分析能力。在嵌入式系统调试和性能优化领域,这…...

Cursor IDE AI助手深度定制:利用.mdc规则与Agent配置打造专属开发伙伴

1. 项目概述与核心价值 如果你和我一样,每天都在和代码编辑器打交道,尤其是深度依赖 Cursor IDE 进行开发,那你肯定对“如何让 AI 助手更懂我”这件事有执念。默认的 AI 模型虽然强大,但总感觉差了那么点意思——它可能不理解你项…...

AI对话备份工具convx:基于Git的本地化版本控制实践

1. 项目概述:为什么我们需要一个AI对话备份工具? 如果你和我一样,每天花大量时间与Claude、ChatGPT、Cursor这类AI工具进行深度对话,那么你一定遇到过这个痛点:一次精彩的头脑风暴、一段精心调试的代码、一份结构清晰…...

MindNLP实战:零代码迁移HuggingFace模型至昇腾NPU与MindSpore

1. 项目概述:当HuggingFace生态遇见MindSpore硬件 如果你和我一样,常年混迹在AI开发一线,肯定对HuggingFace(HF)这个“模型界的GitHub”又爱又恨。爱的是它那超过20万个预训练模型,从BERT到Llama&#xff…...

AvaKill:为AI代理构建零信任安全防护的实战指南

1. 项目概述:AI代理的“安全气囊”AvaKill如果你正在开发或使用AI代理(比如Claude Code、Cursor、Windsurf这类能直接操作文件、运行命令的智能助手),那你一定对它们偶尔的“疯狂”行为心有余悸。我见过一个真实的案例&#xff0c…...

PromptScript:用TypeScript实现AI提示词工程化与团队协作

1. 项目概述与核心价值最近在折腾AI辅助编程工具链,发现一个挺有意思的现象:大家用Claude、Cursor、GitHub Copilot这些工具时,往往都是临时起意,在聊天框里敲一段指令,然后祈祷模型能理解你的意图。这种“一次性”的提…...

刺客信条:奥德赛风灵月影修改器下载分享2026最新版

《刺客信条:奥德赛》以古希腊为舞台,打造了一个波澜壮阔的开放世界,玩家将扮演斯巴达佣兵,在伯罗奔尼撒战争的乱世中书写传奇。游戏中丰富的战斗系统、航海玩法、技能养成与资源收集,为玩家提供了海量的游玩内容&#…...

FreeIPA容器化部署指南:从镜像选择到生产环境配置

1. 项目概述与核心价值如果你正在为团队或项目寻找一套开源的、集成的身份与访问管理(IAM)解决方案,并且希望它能像现代微服务一样易于部署和管理,那么 FreeIPA 的容器化项目freeipa/freeipa-container绝对值得你深入研究。这个项…...

将地址转换为可点击的 Google Maps 链接(类似 tel- 协议).txt

...

测试左移+AI:质量内建的终极形态?

当“左移”遇上“智能”,一场质量哲学的进化在软件工程领域,“测试左移”早已不是新鲜词汇。它成功地将质量保障的注意力从编码后的“检测”拉向了编码前的“预防”,显著降低了缺陷修复成本。然而,传统的左移实践,如需…...

Cortex-M调试连接器技术解析与应用实践

1. Cortex-M调试连接器技术演进背景在嵌入式系统开发领域,调试连接器作为连接开发环境与目标芯片的物理桥梁,其设计直接影响调试效率与硬件布局。传统ARM架构长期依赖20针IDC连接器实现JTAG调试,配合38针Mictor连接器完成指令跟踪。这种组合在…...

第二部分-Docker核心原理——10. 容器网络原理

10. 容器网络原理 1. 容器网络概述 容器网络是 Docker 的核心组件之一,负责实现容器与容器、容器与宿主机、容器与外部的网络通信。Docker 通过 Linux 内核的网络命名空间、veth pair、网桥、iptables 等技术实现网络隔离和连通。 ┌───────────────…...

09-扩展知识——02. 初识 datetime 模块

02. 初识 datetime 模块 概述 datetime 是 Python 处理日期和时间的核心模块,提供了 date、time、datetime、timedelta、tzinfo 五个主要类。掌握这个模块是时间处理的基础。维度内容Whatdatetime 模块的五大核心类及其基本用法Why日常日期时间操作的首选模块When需…...

利用 workbuddy 小龙虾 对CodeBuddy开发历史对话 进行开发总结 提高以后的开发效果

利用 workbuddy 小龙虾 对CodeBuddy开发历史对话 进行开发总结 提高以后的开发效果 提示词 你能读取 CodeBuddy CN.历史记录吗 "C:\Users\yang\AppData\Local\Programs\CodeBuddy CN\CodeBuddy CN.exe" 和 F:\Programs\CodeBuddy\CodeBuddy.exe 每一个对话框 都总结…...

别再只用默认密码了!手把手教你用Hydra和Burp Suite搞定SSH、Web后台的弱口令检测(附实战避坑指南)

企业安全自查实战:Hydra与Burp Suite弱口令检测全流程解析 当你的服务器突然被植入挖矿程序,或是客户数据在暗网明码标价出售时,80%的情况都始于一个被忽视的弱口令。这不是危言耸听——2023年Verizon数据泄露调查报告显示,弱口令…...

别再只接SWDIO和SWCLK了!STM32 SWD下载电路完整接线指南(含NRST、3.3V、GND详解)

STM32 SWD调试接口全解析:从基础接线到高速信号完整性设计 引言 第一次使用ST-Link给STM32下载程序时,我也曾天真地以为只要连接SWDIO和SWCLK两根线就够了。结果在连续三次下载失败后,我才意识到自己犯了一个典型的新手错误——忽略了完整的S…...