还记得第一次写邮件是什么时候吗? 也许是小时候用QQ邮箱给同学写过一封“秘密小纸条”,也许是刚参加工作时,用Outlook给领导发了一份认真的周报。
无论是哪一种场景,邮件在我们生活和工作中都不可或缺。但你有没有想过,有一天,你可以不用手点开邮箱,一封一封地写,而是用几行Python代码,就能自动完成?是的,这就是我要分享的主题:用Python自动化发送邮件。 而实现这一切的关键,就是两个Python的内置库:smtplib 和 email。
今天,我们就从零开始,把它们拆开来讲,带你走一遍“从入门到进阶”的完整流程。不管你是编程小白,还是已经在写脚本的开发者,这篇文章都会让你收获满满。
一、为什么要学会用Python发邮件?
先聊聊场景。 想象一下这些情况:
你是一个数据分析师,每天需要把当天的分析报表发给老板。手动发很麻烦,忘记一次还可能挨批评。
你是一个开发者,系统运行出错时需要自动通知相关人员。如果能让程序自己发邮件提醒,是不是省心又高效?
你是一个交易爱好者,想每天收盘后收到一封“今日行情总结”的自动推送。
这些事情,完全可以交给Python来搞定。 说白了,Python的邮件自动化 = 省时、省力、省心。
而且最重要的是,这项技能你一旦掌握,就能用在无数场景中。
二、认识主角:smtplib 和 email
我们先别急着上手敲代码,先搞明白两个主角分别干啥。
smtplib:它就像是一个邮递员,负责把你写好的信(邮件)送到对方邮箱。SMTP 的全称是“简单邮件传输协议”,几乎所有的邮件都是通过它来投递的。
email:它是一个写信工具,帮你把邮件的内容组装好。不管是纯文本、HTML,还是附件,都可以用它来构造。
一个管送,一个管写。它俩搭配起来,就能把整个流程打通。
三、准备工作:邮箱设置
要让Python帮你发邮件,第一步不是写代码,而是要让你的邮箱“开门迎客”。
大部分邮箱默认是不允许外部程序直接登录的,你需要先开启 SMTP 服务。 以126邮箱为例,操作步骤大概是这样:
登录邮箱 → 找到 设置 → 找到 SMTP/POP3服务。
点击开启SMTP服务(有些平台会要求你手机验证码验证)。
验证完成后,系统会给你一个 授权码。注意,这个授权码非常重要,它相当于是你用程序登录邮箱的密码,一定要妥善保存。
记下邮箱的 SMTP服务器地址。比如126邮箱的是 smtp.126.com,QQ邮箱的是 smtp.qq.com。
完成这一步,你的邮箱就算“开锁”了,可以用来写代码了。
四、第一封自动化邮件:从零到一
下面我们写一段最简单的代码:

运行之后,如果设置没问题,你会在收件人的邮箱里看到一封“Python邮件测试”。 那一刻,成就感满满。
五、进阶玩法:不止是纯文本
如果只会发纯文本邮件,未免有点太单调了。邮件其实还可以很“花哨”:
1. 发送HTML格式的邮件
比如你想发一封带有排版、颜色甚至图片的邮件,可以这样写:

收件人打开之后,会看到蓝色的标题和排版整齐的正文,比纯文本好多了。
2. 给邮件加上附件
再进一步,如果你需要把报表、图片、文档发给别人,可以添加附件:

运行后,收件人就能在邮件里下载 example.txt 这个附件。是不是很实用?
六、常见的坑与解决办法
写到这里,你可能跃跃欲试,但在实际使用中,大家经常会遇到一些小坑:
登录失败明明账号密码没错,却提示“用户名或密码错误”。
这通常是因为你没用授权码,而是直接用邮箱密码。记住:程序登录必须用授权码!
554 5.7.1 错误这是邮件服务商把你的邮件认定为垃圾邮件。
解决方法:
邮件标题和正文写得正常一点,避免“中奖、优惠、秒杀”之类的敏感词。不要一次性群发太多邮件。
端口问题
使用TLS加密一般是 587 端口;
使用SSL加密一般是 465 端口。 如果收不到邮件,试试换端口。
七、实战场景:把邮件融入到你的工作流
学了这些基础之后,真正的价值在于把它应用到实战场景中。比如:
定时日报配合 schedule 或 cron 定时任务,每天自动生成报表并发给团队。
监控告警系统出错、服务器宕机时,自动发邮件通知相关人员。
个人效率工具写个脚本,把待办事项、日程提醒发到自己邮箱里。
想象一下,当你睡觉的时候,Python帮你发完了所有的日报和提醒,是不是一种“解放双手”的快感?
八、总结
今天我们从最基础的概念讲起,一步步演示了如何用Python的 smtplib 和 email 库发送邮件。 内容涵盖:
如何开启邮箱的SMTP服务并获取授权码;
发送第一封纯文本邮件;
扩展玩法:HTML邮件、带附件的邮件;
常见问题与解决方案;
实战场景应用。
你会发现,这项技能其实并不复杂,但实用性极强。 当别人还在手动一封封发邮件时,你的Python脚本已经帮你自动搞定,这就是所谓的“用技术偷懒”。
如果你正打算提升工作效率,或者给项目加点“智能感”,试试用Python发一封属于自己的自动化邮件吧。 也许,就从今天开始,你会对“发邮件”这件小事,重新产生敬畏和喜爱。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/13496/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取