flask-mail
1、安装
pip install flask-mail
2、配置
app.config['MAIL_SERVER'] = 'smtp.qq.com' #qq邮箱发送邮件服务器
app.config['MAIL_PORT'] = 465 # 端口号为465或587
app.config['MAIL_USE_SSL'] = True #qq邮箱需使用ssl,默认为Flase
app.config['MAIL_USERNAME'] = '24855@qq.com' #发件箱用户名
app.config['MAIL_PASSWORD'] = 'xxxxxxxxxx' #填写授权码
app.config['MAIL_DEFAULT_SENDER'] = '24855@qq.com'#默认发送邮箱
mail = Mail(app)
3、异步发送邮件
def send_async_email(app, msg):
'''很多 Flask 扩展都假设已经存在激活的程序上下文和请求
上下文。Flask-Mail 中的 send() 函数使用 current_app ,
因此必须激活程序上下文。不过,在不同线程中执行
mail.send() 函数时,程序上下文要使用 app.app_context() 人工创建。'''
with app.app_context():
mail.send(msg)
def index():
msg = Message(subject='Hello World',
sender="24855@qq.com", # 需要使用默认发送者则不用填
recipients=['248551@qq.com'])
# 邮件内容会以文本和html两种格式呈现,而你能看到哪种格式取决于你的邮件客户端。
msg.body = 'sended by flask-email'
msg.html = '<b>测试Flask发送邮件<b>'
thread = Thread(target=send_async_email, args=[app, msg])
thread.start()
return '<h1>邮件发送成功</h1>'
网友评论