SMTL

Die Stadtmeistersteilerliste und das Anmeldeformular - SK Langen e.V.
git clone git://git.oshgnacknak.de/SMTL.git
Log | Files | Refs | README

commit 843b1f3adcc2c7523973bfa0dc79f49f69c30719
parent b51567170691f80b66947c610b73f1bd178c9fcd
Author: Oshgnacknak <osh@oshgnacknak.de>
Date:   Sun, 18 Aug 2019 14:52:03 +0200

Reconnect SMTP if necessary

Diffstat:
Menv_config.py | 2+-
Msmtl/email.py | 11+++++++++++
Msmtl/templates/signup_form.html | 3+++
3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/env_config.py b/env_config.py @@ -20,7 +20,7 @@ else: run_config = { - 'DEBUG': int(environ.get('DEBUG', False)), + 'DEBUG': int(environ.get('DEBUG', 0)), 'HOST': environ.get('HOST', '0.0.0.0'), 'POST': int(environ.get('POST', 5000)) } diff --git a/smtl/email.py b/smtl/email.py @@ -2,6 +2,7 @@ import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from config import email_config +from smtl.logging import logger class EMail: @@ -12,6 +13,13 @@ class EMail: def login(self, user=None, password=''): self.server.login(user or self.addr, password) + def is_connected(self): + try: + status = self.server.noop()[0] + except smtplib.SMTPServerDisconnected: + status = -1 + return True if status == 250 else False + def send(self, from_addr=None, to_addr=None, subject='', body=''): msg = MIMEMultipart() msg['From'] = from_addr or self.addr @@ -19,6 +27,8 @@ class EMail: msg['Subject'] = subject msg.attach(MIMEText(body)) + if not self.is_connected(): + self.server.connect() self.server.sendmail(msg['From'], msg['To'], msg.as_string()) @@ -32,5 +42,6 @@ if email_config: user=email_config.get('USER'), password=email_config['PASSWORD'] ) + logger.info('EMail logged in: ' + default_mail.addr) else: default_mail = None diff --git a/smtl/templates/signup_form.html b/smtl/templates/signup_form.html @@ -1,5 +1,8 @@ {% extends 'base.html' %} {% block content %} + <p> + Sie werden per EMail informiert sobald ihre Anmeldung bearbeitet wurde. + </p> <form id="signup_form" method="POST"> <table> {% for field in [form.name, form.gender, form.birth_year, form.club, form.dwz, form.email] %}