无意间看到这个相关的视频,觉得使用python发送邮件很酷,也有很多使用场景,比如说你编写了一个爬虫,需要爬取一个很大的资源网站,那么我们就可以让其在爬取结束或者爬取失败的时候发邮件告诉我我们,这样我们就可以不用时不时去看看程序是否执行结束,或者说你编写了一个系统系统的一些告警可以通过邮件来通知我们。
准备工作:
1.准备一个163邮箱
2.配置好python环境
步骤一:获取POP3/SMTP服务的授权验证码
PoP3和SMTP协议都是用来发送邮件的邮件协议,这里不再细说,我们在使用python发送邮件的时候不需要输入邮箱账号和密码,只需要使用邮箱账号生成的授权码即可进行发送邮件的操作。获取授权码方式和步骤如图所示。
注意!!!!:一定要先保存下这个授权码,应为他只会出现一次,保存好后给设备七个名字,单机确认即可。
这时就会出现下图的内容
记录下面的邮件服务器地址,一会发送的时候要用。
步骤二:发送邮件
2.1邮件发送的流程
使用python代码将授权码和邮件内容等信息编辑好,发送给网易的邮件服务器,然后邮件服务器再将邮件发送给目标邮箱。
2.2代码发送邮件
2.2.1导入Python与邮件发送相关的模块
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
2.2.2构建邮件内容
msg = MIMEText("你要发送的邮件内容", 'html', 'utf-8') # 设置内容,和内容的格式编码
msg["From"] = formataddr(["发送人名字", "发送邮件的邮箱号"]) # 编辑发送人和发送的邮箱
msg['to'] = "目的邮箱号" # 发送的目标地址
msg['Subject'] = '邮件小灰机' # 发送邮件的主题名
2.2.3发送邮件
server = smtplib.SMTP_SSL("smtp.163.com") # 创建与邮件服务器连接
server.login("发送邮箱号", "发送邮箱的授权码") # 账户和授权码
server.sendmail("发送邮箱号", "目的邮箱号", msg.as_string()) # 发送邮件, msg.as_string()为我们构建的邮件内容
server.quit() # 关闭与邮件服务器的连接
至此发送邮件的最基础方法就介绍完成了。