Python Flask异步发送邮件实现方法解析


Posted in Python onAugust 01, 2020

第一步,修改工厂函数,配置邮件参数

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail

db = SQLAlchemy()
mail = Mail()

def create_app():
  app = Flask(__name__)
  app.config.from_object(Config)
  db.init_app(app)
  mail.init_app(app)   from .controller import controller
  app.register_blueprint(controller)

  return app

第二步,新建一个线程来发送邮件

from flask import current_app, render_template
from flask_mail import Message
from threading import Thread
from main import mail

def send_async_email(app, msg):
  with app.app_context():
    mail.send(msg)

def send_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()
  return thr

从current_app的_get_current_object()方法拿到应用程序上下文。特此记录一下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的作用域规则详解
Jan 30 Python
用实例分析Python中method的参数传递过程
Apr 02 Python
ubuntu系统下 python链接mysql数据库的方法
Jan 09 Python
Python守护线程用法实例
Jun 23 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
python+mysql实现学生信息查询系统
Feb 21 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
使用pth文件添加Python环境变量方式
May 26 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Python绘制K线图之可视化神器pyecharts的使用
Mar 02 Python
Python实现弹球小游戏
Aug 01 #Python
序列化Python对象的方法
Aug 01 #Python
Python 忽略文件名编码的方法
Aug 01 #Python
Python 如何展开嵌套的序列
Aug 01 #Python
Python 日期与时间转换的方法
Aug 01 #Python
Python 执行矩阵与线性代数运算
Aug 01 #Python
Python实现数字的格式化输出
Aug 01 #Python
You might like
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
JavaScript 不只是脚本
2007/05/30 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
node.js发送邮件email的方法详解
2017/01/06 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
理解python中生成器用法
2017/12/20 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
详解pandas映射与数据转换
2021/01/22 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
数控专业推荐信范文
2013/12/02 职场文书
金融事务专业求职信
2014/04/25 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
绿色校园广播稿
2014/10/13 职场文书
2016继续教育研修日志
2015/11/13 职场文书
导游词之日本富士山
2020/01/06 职场文书
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android