利用flask-mail发送邮件(以qq邮箱为例)
首先安装flask-mail扩展
pip install flask-mail
# 如果太慢就使用镜像下载
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask-mail
在qq邮箱中开启stmp,并获取授权码
- 授权码长这样
-
为什么要获取授权码
因为部分邮箱服务提供商校验的时候,不要求邮箱的密码,而要求授权码
配置config
创建config.py文件写入
# 发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587
MAIL_SERVER = 'smtp.qq.com'
# 发送邮件的端口
MAIL_PORT = 465
# 传输安全服务器协议
MAIL_USE_TLS = True
# 用户名也就是qq邮箱账号
MAIL_USERNAME = 'asdasdas4@qq.com'
# 授权码,并不是密码
MAIL_PASSWORD = 'sasdasdasdasf'
编写app.py文件
from flask import Flask
from flask_mail import Mail,Message
import config
app = Flask(__name__)
#导入配置文件
app.config.from_object(config)
# 创建Mail对象
mail = Mail(app)
@app.route('/mail')
def sendEmail():
# 参数分别是 邮件标题 发送账号 接收方(可以有多个)
msg = Message("智障理工大----验证码",sender='xxxxx@qq.com',recipients=['xxxxx@qq.com','xxxxx@qq.com'])
# 邮件体内容
msg.body = '你好,您的验证码为:sb555'
# 发送邮件
mail.send(msg)
return '1'
if __name__ == '__main__':
app.run()
常见报错
1.配置信息出错
TypeError: getaddrinfo() argument 1 must be string or None
# 发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587,多了","号发生错误
MAIL_SERVER = 'smtp.qq.com',
2.login-fali
可能是用户名或密码错误