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实现字典的key和values的交换
Aug 04 Python
python 文件操作api(文件操作函数)
Aug 28 Python
python下setuptools的安装详解及No module named setuptools的解决方法
Jul 06 Python
python制作小说爬虫实录
Aug 14 Python
python GUI实例学习
Nov 21 Python
Python中__repr__和__str__区别详解
Nov 07 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
Python函数生成器原理及使用详解
Mar 12 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 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-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
列表内容的选择
2006/06/30 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
用实例解释Python中的继承和多态的概念
2015/04/27 Python
Python实现字典的key和values的交换
2015/08/04 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
python发送邮件功能实现代码
2016/07/15 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
Python实现随机漫步功能
2018/07/09 Python
Python unittest单元测试框架总结
2018/09/08 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
python生成requirements.txt的两种方法
2019/09/18 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
如何强制垃圾回收
2015/10/06 面试题
英语系本科生求职信范文
2013/12/18 职场文书
高校教师自荐信范文
2014/03/13 职场文书
家长建议怎么写
2014/05/15 职场文书