# -*- coding: UTF-8 -* from threading import Thread from flask import current_app from flask_mail import Message from app import mail def send_async_email(app, msg): with app.app_context(): mail.send(msg) def send_email( subject: str, sender: str, recipients: list, text_body: str, html_body="" ): """ Send an email If html_body is specified, build a multipart message with HTML content, else send a plain text email. """ msg = Message(subject, sender=sender, recipients=recipients) msg.body = text_body msg.html = html_body send_message(msg) def send_message(msg): Thread( target=send_async_email, args=(current_app._get_current_object(), msg) ).start()