一、职场场景
每日发送工作报表、每周推送工作总结、批量发送员工通知、客户邮件推送,重复且固定。本文基于Python内置smtplib库,无需额外复杂配置,实现单邮件发送、带附件发送、批量群发、自定义邮件模板,适配企业邮箱、QQ邮箱、163邮箱。
二、前置准备
1、开启邮箱SMTP服务(QQ邮箱/163邮箱在设置中开启);
2、获取邮箱授权码(替代登录密码,用于代码登录);
3、无需安装第三方库,Python内置模块直接使用。
三、三大邮件实战场景
1. 发送纯文本邮件
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 邮箱配置
sender = "你的邮箱@qq.com"
auth_code = "你的邮箱授权码"
receiver = "接收人邮箱@qq.com"
# 邮件内容
msg = MIMEText("各位同事,今日工作报表已更新,请查收!", "plain", "utf-8")
msg["From"] = Header("职场自动化助手")
msg["To"] = Header("办公人员")
msg["Subject"] = Header("今日工作报表推送")
# 连接服务器发送邮件
try:
smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)
smtp.login(sender, auth_code)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print("邮件发送成功!")
except Exception as e:
print(f"发送失败:{e}")
2. 发送带附件邮件(Excel/Word/PDF)
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.header import Header
sender = "你的邮箱@qq.com"
auth_code = "你的授权码"
receiver = "接收邮箱@qq.com"
# 构建邮件主体
msg = MIMEMultipart()
msg["From"] = Header("报表自动推送系统")
msg["To"] = Header("部门全员")
msg["Subject"] = Header("2026年7月月度报表(附件)")
# 邮件正文
text = MIMEText("您好,本月月度统计报表已生成,详见附件,请查收!", "plain", "utf-8")
msg.attach(text)
# 添加Excel附件
with open("月度数据总汇总.xlsx", "rb") as f:
attach = MIMEApplication(f.read(), _subtype="xlsx")
attach.add_header("Content-Disposition", "attachment", filename="月度报表.xlsx")
msg.attach(attach)
# 发送邮件
smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)
smtp.login(sender, auth_code)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print("带附件邮件发送成功!")
3. 批量群发多人邮件
# 批量接收人邮箱列表
receiver_list = [
"员工1@qq.com",
"员工2@163.com",
"员工3@qq.com"
]
# 遍历批量发送
for receiver in receiver_list:
try:
smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)
smtp.login(sender, auth_code)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print(f"{receiver} 邮件发送成功")
except Exception as e:
print(f"{receiver} 发送失败:{e}")
四、企业级优化与避坑
1、企业邮箱修改SMTP服务器地址即可适配;
2、禁止明文存储授权码,正式场景可配置环境变量;
3、添加异常捕获,避免单个邮箱发送失败导致整体中断。
下篇预告
下一篇讲解Python定时任务,实现报表自动生成+自动邮件推送全流程自动化。
标签:Python、邮件自动化、职场工具、批量推送、原创
浙公网安备 33010602011771号