python可以实现和web界面同样的发送邮件功能,并可以升级群发:通过循环遍历每个人的邮箱地址,对不同的人发送不同的邮件(由于没有足够多的邮箱地址这里不扩展)
发送邮件的库
- 1.smtplib是用来连接服务器的库
- 2.MIMEText、MIMEImage、MIMEMultipart是用来构造邮件文本、图片等附件的库
- 3.formataddr,、arseaddr、Header是用来构造邮件头部信息的库
邮件准备
- 1.邮箱服务器域名输入
- 2.收件人地址、验证密码,发件人地址输入
- 3.主题输入
构造邮件
1.构造文本
- 1.MIMEMultipart(‘related’)是邮件容器可以存放文本信息、图片、excel附件,related声明容器为空
- 2.MIMEText设置_subtype参数为plain声明写的是文本信息,构造完之后用用MIMEMultipart的attach方法添加进邮件容器
在这里插入图片描述
2.构造图片附件
- 1.图片在网络中以二进制传输,所以用open方法以二进制读进程序
- 2.MIMEImage用来构造图片附件,构造完成后添加到邮件容器中
3.构造excel附件
- 1.excel附件同样用MIMEText来构造,需要设置_subtype参数base64参数来声明发送的是附件
- 2.并需要用[‘Content-Disposition’] = 'attachment;filename=“linereg.excel”'来给附件起名字,这里起的名字是linereg.xlsx
4.构造邮件头部格式
- 1.自定义如下格式方法
- 2.构造格式方法
5.邮件发送
- 1.smtplib的SMTP_SSL方法来连接服务器,这里用的是qq邮箱服务器,端口是465
- 2.用login方法来登录验证(验证的密码是第三方授权码,由于不是在web端直接登录所以需要获取授权码来验证登录服务器)
- 3.sendmail用来发送邮件,发送的是用容器打包好的message
授权码获取
在qq邮箱web端点击设置—》账户----》POP3/SMTP服务打