Skip to content
Snippets Groups Projects
email.py 755 B
Newer Older
  • Learn to ignore specific revisions
  • from flask import current_app, render_template
    
    Patrick Jentsch's avatar
    Patrick Jentsch committed
    from flask_mail import Message
    
    from threading import Thread
    
    from app import mail
    
    def create_message(recipient, subject, template, **kwargs):
    
        subject_prefix: str = current_app.config['NOPAQUE_MAIL_SUBJECT_PREFIX']
        msg: Message = Message(
    
            body=render_template(f'{template}.txt.j2', **kwargs),
            html=render_template(f'{template}.html.j2', **kwargs),
            recipients=[recipient],
            subject=f'{subject_prefix} {subject}'
    
    def send(msg, *args, **kwargs):
        def _send(app, msg):
            with app.app_context():
                mail.send(msg)
    
    
        thread = Thread(target=_send, args=[current_app._get_current_object(), msg])
        thread.start()
        return thread