diff --git a/app/email.py b/app/email.py new file mode 100644 index 0000000000000000000000000000000000000000..a3c6a3a4048d9799241723e97d36c2776796526c --- /dev/null +++ b/app/email.py @@ -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 diff --git a/config.py b/config.py index 4a1c3ab007e92436ec4996f62a432fb51e4dfda9..fdc2318daa51eee7004901e98f1d42e5c0047d3f 100644 --- a/config.py +++ b/config.py @@ -5,6 +5,14 @@ basedir = os.path.abspath(os.path.dirname(__file__)) 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' SQLALCHEMY_TRACK_MODIFICATIONS = False