Add e-mail code.

This commit is contained in:
Patrick Jentsch 2019-07-08 11:29:11 +02:00
parent 2e1aa8cf31
commit bd49bb4dae
2 changed files with 28 additions and 0 deletions

20
app/email.py Normal file
View File

@ -0,0 +1,20 @@
from threading import Thread
from flask import current_app, render_template
from flask_mail import Message
from . import mail
def send_async_email(app, msg):
with app.app_context():
mail.send(msg)
def send_email(to, subject, template, **kwargs):
app = current_app._get_current_object()
msg = Message(app.config['OPAQUE_MAIL_SUBJECT_PREFIX'] + ' ' + subject,
sender=app.config['OPAQUE_MAIL_SENDER'], recipients=[to])
msg.body = render_template(template + '.txt', **kwargs)
msg.html = render_template(template + '.html', **kwargs)
thr = Thread(target=send_async_email, args=[app, msg])
thr.start()
return thr

View File

@ -5,6 +5,14 @@ basedir = os.path.abspath(os.path.dirname(__file__))
class Config: class Config:
MAIL_SERVER = os.environ.get('MAIL_SERVER', 'smtp.uni-bielefeld.de')
MAIL_PORT = int(os.environ.get('MAIL_PORT', '587'))
MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS', 'true').lower() in \
['true', 'on', '1']
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
OPAQUE_MAIL_SUBJECT_PREFIX = '[Opaque]'
OPAQUE_MAIL_SENDER = 'Opaque Admin <inf_sfb1288@uni-bielefeld.de>'
SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string' SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string'
SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_TRACK_MODIFICATIONS = False