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中pass语句用法实例分析
Apr 30 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
详解Python循环作用域与闭包
Mar 21 Python
如何通过Python实现标签云算法
Jul 02 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
python中shell执行知识点
May 06 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
详解Python中string模块除去Str还剩下什么
Nov 30 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
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
js给selected添加options的方法
2015/05/06 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
开始着手第一个Django项目
2015/07/15 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
就业协议书范本
2014/04/11 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
学校志愿者活动总结
2014/06/27 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
违纪学生保证书
2015/02/27 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis