每天要给客户发报价单、给同事群发会议提醒、定时给领导汇报项目进度?手动点鼠标太费劲。其实用几行Python代码,就能让电脑替你准时发邮件——不用打开Outlook,不依赖网页,连着网就能跑。
先装个轮子:smtplib + email
Python自带这两个模块,不用额外安装。smtplib负责‘寄信’,email负责‘写信封+装信’。重点不是多高深,而是够用、稳定、不卡壳。
最简可用版(Gmail示例)
假设你用的是Gmail账号,开启SMTP服务(在Gmail设置→账户和导入→其他Google服务→开启‘允许不够安全的应用’,或更推荐用应用专用密码),把下面代码复制保存为 send_mail.py,改掉邮箱和密码,双击就能跑:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 配置发件人信息
sender = 'your_email@gmail.com'
password = 'your_app_password' # 不是登录密码,是Gmail生成的应用专用密码
receiver = 'target@company.com'
# 构建邮件内容
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = '每日数据报告已生成'
body = 'Hi,今日销售数据已汇总完毕,请查收附件。'
msg.attach(MIMEText(body, 'plain'))
# 发送
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender, password)
server.send_message(msg)
server.quit()
print('邮件已发出')
换成企业邮箱?只改两行
比如公司用腾讯企业邮箱,把 SMTP 服务器和端口换掉就行:
server = smtplib.SMTP('smtp.exmail.qq.com', 465)
再把 server.starttls() 换成 server = smtplib.SMTP_SSL('smtp.exmail.qq.com', 465) —— 其他一行不动,照样能用。
加个附件?多加三行
财务每月要发Excel报表?在上面代码的 msg.attach(...) 后面补上:
from email.mime.base import MIMEBase
from email import encoders
with open('report.xlsx', 'rb') as f:
part = MIMEBase('application', 'vnd.openxmlformats-officedocument.spreadsheetml.sheet')
part.set_payload(f.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename=report.xlsx')
msg.attach(part)
想每天8点自动发?配个Windows计划任务
右键‘此电脑’→管理→任务计划程序→创建基本任务,选‘每天’,触发器设成8:00,操作选‘启动程序’,程序填 python.exe,参数填你的脚本完整路径,比如:
C:\Users\Admin\Desktop\send_mail.py
别忘了在‘常规’选项卡里勾选‘不管用户是否登录都要运行’和‘使用最高权限运行’。