Skip to content
Snippets Groups Projects
email.py 709 B
from flask import current_app, render_template
from flask_mail import Message
from typing import Any, Text
from . import mail
from .decorators import background


def create_message(
    recipient: str,
    subject: str,
    template: str,
    **kwargs: Any
) -> Message:
    subject_prefix: str = current_app.config['NOPAQUE_MAIL_SUBJECT_PREFIX']
    msg: Message = Message(
        f'{subject_prefix} {subject}', recipients=[recipient])
    msg.body: Text = render_template(f'{template}.txt.j2', **kwargs)
    msg.html: Text = render_template(f'{template}.html.j2', **kwargs)
    return msg


@background
def send(msg: Message, *args, **kwargs):
    with kwargs['app'].app_context():
        mail.send(msg)