1
0
forked from finn/site
site/backend/app/email.py

28 lines
931 B
Python
Raw Normal View History

from threading import Thread
2024-08-05 07:59:01 +00:00
from flask import render_template
2024-08-05 05:00:07 +00:00
from flask_mail import Message
2024-08-05 07:59:01 +00:00
from app import mail, app
2024-08-05 05:00:07 +00:00
def send_async_email(app, msg):
with app.app_context():
mail.send(msg)
2024-08-05 05:00:07 +00:00
def send_email(subject, sender, recipients, text_body, html_body):
msg = Message(subject, sender=sender, recipients=recipients)
msg.body = text_body
msg.html = html_body
Thread(target=send_async_email, args=(app, msg)).start()
2024-08-05 05:00:07 +00:00
2024-08-05 07:59:01 +00:00
def send_password_reset_email(user):
token = user.get_reset_password_token()
hostname = app.config['REAL_HOSTNAME']
send_email('[Blog] Reset Password',
sender=app.config['ADMINS'][0],
recipients=[user.email],
text_body=render_template('email/reset_password.txt', hostname=hostname, user=user, token=token),
html_body=render_template('email/reset_password.html', hostname=hostname, user=user, token=token))