Python Flask异步发送邮件实现方法解析
第一步,修改工厂函数,配置邮件参数
fromflaskimportFlask fromconfigimportConfig fromflask_sqlalchemyimportSQLAlchemy fromflask_mailimportMail db=SQLAlchemy() mail=Mail() defcreate_app(): app=Flask(__name__) app.config.from_object(Config) db.init_app(app) mail.init_app(app)from.controllerimportcontroller app.register_blueprint(controller) returnapp
第二步,新建一个线程来发送邮件
fromflaskimportcurrent_app,render_template
fromflask_mailimportMessage
fromthreadingimportThread
frommainimportmail
defsend_async_email(app,msg):
withapp.app_context():
mail.send(msg)
defsend_email(to,subject,template='index',**kwargs):
app=current_app._get_current_object()
msg=Message(subject,sender=app.config['MAIL_USERNAME'],recipients=[to])
msg.html=render_template('{}.html'.format(template),**kwargs)
thr=Thread(target=send_async_email,args=[app,msg])
thr.start()
returnthr
从current_app的_get_current_object()方法拿到应用程序上下文。特此记录一下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短