Python入门连载(六)
自动发邮件+带Excel附件,一键搞定周报日报
一、这个脚本能解决什么职场痛点?
每天/每周要发报表,重复粘贴附件很繁琐
多人抄送,容易漏发、错发
报表更新后,手动发邮件浪费大量时间
想定时发送,但一直守在电脑前
用这个脚本,运行一次 = 统计Excel + 生成附件 + 自动发送邮件,真正全自动。
二、准备工作(2分钟搞定)
用一个常用邮箱(QQ邮箱/163邮箱都可以)
开启SMTP服务,获取授权码(不是登录密码)
把上一期生成的 结果.xlsx 放在同一文件夹
三、完整可复制运行的自动发邮件代码
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
# 1. 邮箱配置
sender = "你的邮箱@qq.com"
pwd = "你的SMTP授权码"
receiver = "收件人邮箱@xxx.com"
smtp_server = "smtp.qq.com"
smtp_port = 465
# 2. 创建邮件
msg = MIMEMultipart()
msg["From"] = sender
msg["To"] = receiver
msg["Subject"] = "本周数据统计报表(Python自动发送)"
# 3. 邮件正文
body = """
领导您好:
附件为本周数据统计结果,包含总分、平均分等汇总信息。
报表由Python自动生成并发送,无需手动处理。
如有问题可随时联系。
"""
msg.attach(MIMEText(body, "plain", "utf-8"))
# 4. 添加Excel附件
with open("结果.xlsx", "rb") as f:
xlsx = MIMEApplication(f.read())
xlsx.add_header("Content-Disposition", "attachment", filename="数据统计结果.xlsx")
msg.attach(xlsx)
# 5. 发送邮件
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(sender, pwd)
server.sendmail(sender, receiver, msg.as_string())
server.quit()
print("邮件发送成功!")
四、超简单说明
smtplib:Python自带发邮件库,不用额外装
MIMEMultipart:支持正文+附件
只需要改:邮箱、授权码、收件人、标题正文
附件可以是Excel、Word、PDF、图片,全都支持
五、新手最容易踩的3个坑
用了登录密码,不是授权码
一定要在邮箱设置里开SMTP,拿授权码。
SMTP地址/端口填错
QQ邮箱:smtp.qq.com,端口465
163邮箱:smtp.163.com,端口465
被当成垃圾邮件
标题别太广告,第一次单发测试,正常后再群发。
Python零基础连载持续更新,下期不见不散~