Fixing SMTP mail sending make username and password optional (#341)

* Fixing SMTP mail sending make username and password optional
selenium-screenshot-testing
SkeyeLlama 2017-08-09 03:39:09 -04:00 committed by Kevin Chung
parent bcf3f6e12c
commit cfc87e7a2b
4 changed files with 17 additions and 2 deletions

View File

@ -113,6 +113,7 @@ def admin_config():
verify_emails = bool(request.form.get('verify_emails', None))
mail_tls = bool(request.form.get('mail_tls', None))
mail_ssl = bool(request.form.get('mail_ssl', None))
mail_useauth = bool(request.form.get('mail_useauth', None))
except (ValueError, TypeError):
view_challenges_unregistered = None
view_scoreboard_if_authed = None
@ -123,6 +124,7 @@ def admin_config():
verify_emails = None
mail_tls = None
mail_ssl = None
mail_useauth = None
finally:
view_challenges_unregistered = utils.set_config('view_challenges_unregistered', view_challenges_unregistered)
view_scoreboard_if_authed = utils.set_config('view_scoreboard_if_authed', view_scoreboard_if_authed)
@ -133,6 +135,7 @@ def admin_config():
verify_emails = utils.set_config('verify_emails', verify_emails)
mail_tls = utils.set_config('mail_tls', mail_tls)
mail_ssl = utils.set_config('mail_ssl', mail_ssl)
mail_useauth = utils.set_config('mail_useauth', mail_useauth)
mail_server = utils.set_config("mail_server", request.form.get('mail_server', None))
mail_port = utils.set_config("mail_port", request.form.get('mail_port', None))
@ -186,6 +189,7 @@ def admin_config():
mail_tls = utils.get_config('mail_tls')
mail_ssl = utils.get_config('mail_ssl')
mail_useauth = utils.get_config('mail_useauth')
view_challenges_unregistered = utils.get_config('view_challenges_unregistered')
view_scoreboard_if_authed = utils.get_config('view_scoreboard_if_authed')
@ -208,6 +212,7 @@ def admin_config():
hide_scores=hide_scores,
mail_server=mail_server,
mail_port=mail_port,
mail_useauth=mail_useauth,
mail_username=mail_username,
mail_password=mail_password,
mail_tls=mail_tls,

View File

@ -131,6 +131,12 @@
placeholder="Mail Server Port"
{% if mail_port is defined and mail_port != None %}value="{{ mail_port }}"{% endif %}>
</div>
<div class="checkbox">
<label>
<input id="mail_useauth" name="mail_useauth" type="checkbox" {% if mail_useauth %}checked{% endif %}>
Use SMTP Authentication?
</label>
</div>
<div class="form-group">
<label for="start">Username:</label>
<input class="form-control" id='mail_username' name='mail_username' type='text'

View File

@ -436,13 +436,14 @@ def mailserver():
return False
def get_smtp(host, port, username=None, password=None, TLS=None, SSL=None):
def get_smtp(host, port, username=None, password=None, TLS=None, SSL=None, auth=None):
smtp = smtplib.SMTP(host, port)
smtp.ehlo()
if TLS:
smtp.starttls()
smtp.ehlo()
smtp.login(username, password)
if auth:
smtp.login(username, password)
return smtp
@ -477,6 +478,8 @@ def sendmail(addr, text):
data['TLS'] = get_config('mail_tls')
if get_config('mail_ssl'):
data['SSL'] = get_config('mail_ssl')
if get_config('mail_useauth'):
data['auth'] = get_config('mail_useauth')
smtp = get_smtp(**data)
msg = MIMEText(text)

View File

@ -75,6 +75,7 @@ def setup():
mail_ssl = utils.set_config('mail_ssl', None)
mail_username = utils.set_config('mail_username', None)
mail_password = utils.set_config('mail_password', None)
mail_useauth = utils.set_config('mail_useauth', None)
setup = utils.set_config('setup', True)