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中逗号的三种作用实例分析
Jun 08 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
python代码实现ID3决策树算法
Dec 20 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
Python 实现12306登录功能实例代码
Feb 09 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
python实现画图工具
Aug 27 Python
python数字图像处理实现图像的形变与缩放
Jun 28 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牛逼的面试题分享
2013/01/18 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
php验证码实现代码(3种)
2015/09/07 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
基于Python 函数和方法的区别说明
2021/03/24 Python
培训讲师岗位职责
2014/04/13 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
学习考察心得体会
2014/09/04 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
停课通知书
2015/04/24 职场文书
2015年小学生暑假总结
2015/07/13 职场文书