影刀RPA实操指南自动发送邮件从SMTP配置到带附件定时报告想象一下这个场景你凌晨三点被闹钟叫醒打开电脑登录邮箱把昨晚采集好的数据报告发出去。发完之后才想起——这个流程影刀明明可以自动跑。是的邮件发送是RPA自动化里最容易被忽略的收尾环节。数据采了、报表生成了、图表画好了结果最后一步发送还是人在点。这篇文章带你彻底解决这个问题。影刀发送邮件的四种方式方式适用场景难度影刀内置发送邮件指令最简单适合个人QQ/163邮箱⭐Python smtplib灵活适合企业邮箱/Exchange⭐⭐企业微信邮件公司用企业微信生态⭐网页操作模拟万不得已的备选方案⭐⭐⭐大多数场景前两种就够了。方式一影刀内置邮件指令最简单影刀提供了开箱即用的发送邮件指令。QQ邮箱配置QQ邮箱的SMTP默认是关闭的需要先去开启。开启步骤登录QQ邮箱 → 设置 → 账户找到POP3/IMAP/SMTP服务开启IMAP/SMTP服务验证密保后会得到一个授权码不是QQ密码影刀指令配置指令发送邮件 SMTP服务器smtp.qq.com 端口465SSL 发件人邮箱你的QQ号qq.com 授权码刚才获取的16位授权码 收件人targetexample.com 邮件主题每日销售数据报告 - 2024-01-15 邮件正文你的正文内容 附件D:/reports/sales_report.xlsx163邮箱同理SMTP服务器smtp.163.com 端口465SSL 授权码在163邮箱设置里开启SMTP后获取 [video(video-AO9YhWbY-1781341387932)(type-csdn)(url-https://live.csdn.net/v/embed/525000)(image-https://v-blog.csdnimg.cn/asset/23da3fe1f67a47106d725406cfde9a97/cover/Cover0.jpg)(title-拼多多店群自动化上架方案)]多收件人多个收件人用逗号分隔收件人user1qq.com,user2163.com,user3company.com也可以加上抄送和密送字段。方式二Python发送邮件灵活版内置指令好用的前提是你的邮箱支持标准SMTP。遇到Exchange企业邮箱、需要自定义邮件头、发送HTML富文本邮件时Python方案更灵活。基础脚本importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.mime.baseimportMIMEBasefromemailimportencodersimportosdefsend_email(subject,body,to_emails,attachmentsNone):# QQ邮箱SMTP配置smtp_serversmtp.qq.comsmtp_port465senderyour_emailqq.compassword你的授权码# 构建邮件msgMIMEMultipart()msg[From]sender msg[To], .join(to_emails)msg[Subject]subject# 添加正文msg.attach(MIMEText(body,plain,utf-8))# 添加附件ifattachments:forfile_pathinattachments:withopen(file_path,rb)asf:partMIMEBase(application,octet-stream)part.set_payload(f.read())encoders.encode_base64(part)filenameos.path.basename(file_path)part.add_header(Content-Disposition,fattachment; filename{filename})msg.attach(part)# 发送withsmtplib.SMTP_SSL(smtp_server,smtp_port)asserver:server.login(sender,password)server.send_message(msg)print(f邮件已发送{subject})# 使用send_email(subject每日数据报告 2024-01-15,body请看附件中的销售数据。,to_emails[bosscompany.com,colleaguecompany.com],attachments[D:/reports/sales_report.xlsx,D:/reports/chart.png])发送HTML邮件有时候你想发一封排版好看的邮件html_body html body h2今日数据概览/h2 table border1 cellpadding8 styleborder-collapse:collapse tr stylebackground:#1890ff;color:white th指标/thth今日/thth昨日/thth变化/th /tr tr td销售额/tdtd¥25,800/tdtd¥22,100/td td stylecolor:#52c41a16.7%/td /tr /table p详细数据见附件。/p /body /html msg.attach(MIMEText(html_body,html,utf-8))用HTML邮件替代纯文本报告看起来专业一个档次。163企业邮箱很多公司用163/阿里企业邮箱SMTP配置如下# 163企业邮箱smtp_serversmtp.qiye.163.comsmtp_port465# 或 587(TLS)# 阿里企业邮箱smtp_serversmtp.mxhichina.comsmtp_port465端口如果465连不上换587试试。实战数据采集 → 报告生成 → 邮件发送全链路把前面学的内容串起来做一个完整的自动化。流程结构影刀主流程 ├─ 1. 电商数据采集采集今日商品价格 ├─ 2. 数据写入Exceldaily_price.xlsx ├─ 3. Python脚本生成图表 │ python generate_chart.py │ → 生成 price_trend.png ├─ 4. 构建邮件正文 │ 设置变量 email_body 拼接今日数据摘要 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a59f33ceb8a94df2a94174648f42084e.png#pic_center) ├─ 5. 发送邮件 │ 收件人bosscompany.com │ 附件daily_price.xlsx price_trend.png │ 正文email_body └─ 6. 发送企微通知 │ 每日报告已发送至邮箱关键点邮件正文动态拼接不要写死正文内容让它随数据变化设置变量 email_body 今天共监控 {{total_count}} 个SKU 价格波动 {{changed_count}} 个其中上涨 {{up_count}} 下降 {{down_count}} 波动最大SKU{{max_change_sku}}变化幅度 {{max_change_pct}}% 请查收附件中的详细数据。影刀的变量拼接用{{变量名}}语法。常见错误与解决错误1535 Authentication Failedsmtplib.SMTPAuthenticationError: (535, bLogin Fail)原因密码错了。解决QQ/163邮箱必须用授权码不是邮箱登录密码。去邮箱设置里重新获取授权码。错误2Connection RefusedConnectionRefusedError: [WinError 10061]原因端口被封或选错了。解决先用ping smtp.qq.com测试网络465不行换587公司网络可能封了SMTP端口试试用手机热点测试错误3附件中文名乱码# 错误写法filename每日报告.xlsx# 正确写法fromemail.headerimportHeader filenameHeader(每日报告.xlsx,utf-8).encode()错误4邮件进了垃圾箱原因发件频率太高、内容被判定为垃圾邮件。解决每次发送间隔至少30秒正文不要全是链接和数字加一句如不需要此报告请回复退订虽然是自动化但保持礼貌TEMU店群如何管理运营什么时候用邮件什么时候用企微场景推荐渠道需要正式存档邮件发送附件Excel/PDF邮件多人审批流转邮件即时告警通知企业微信/钉钉团队群内通报企业微信外部合作伙伴邮件日报/周报都可以看公司习惯一句话正式报告走邮件即时通知走企微。定时发送的注意事项邮件发送和定时任务配合时有几个坑1. 不要凌晨发送凌晨3点的邮件收件人会觉得你在加班或者流程出了bug。设置在工作时间发送如每天9:00或周一9:30更自然。2. 加发送失败的兜底邮件发送可能因为网络、授权码过期等各种原因失败。try:send_email(...)print(发送成功)exceptExceptionase:print(f发送失败{e})# 写到本地日志# 发送企微告警给开发者永远不要假设邮件一定会发成功。3. 授权码定期检查QQ邮箱的授权码有时候会过期。在每月1号让流程给自己发一封测试邮件如果没有收到就说明授权码该换了。总结自动发送邮件是RPA自动化链条的最后一公里。数据采了、报表做了、图表画了如果还需要人手动发送前面的自动化就只完成了80%。影刀内置的发送邮件指令满足大部分需求需要灵活定制时切到Python smtplib。记得获取正确的授权码、处理好附件中文名、加上失败兜底逻辑。让数据自己跑到收件人的邮箱里——这才是完整的自动化。内容标签#影刀RPA #邮件自动化 #SMTP #Python #定时报告作者林焱系列影刀RPA实操指南系列——从单点指令到端到端自动化解决方案