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

Elaine ·
更新时间:2024-11-13
· 756 次阅读

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

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使用QQ邮箱实现自动发送邮件Python发送邮件封装实现过程详解python实现QQ邮箱发送邮件Python3实现发送邮件和发送短信验证码功能selenium+python实现自动登陆QQ邮箱并发送邮件功能Python发送邮件的实例代码讲解Python 调用 Outlook 发送邮件过程解析Python 发送邮件方法总结



方法 flask 发送邮件 邮件 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号