ScoDoc/app/email.py

31 lines
729 B
Python

# -*- 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()