mirror of https://github.com/JohnHammond/CTFd.git
Fixing SMTP mail sending make username and password optional (#341)
* Fixing SMTP mail sending make username and password optionalselenium-screenshot-testing
parent
bcf3f6e12c
commit
cfc87e7a2b
|
@ -113,6 +113,7 @@ def admin_config():
|
||||||
verify_emails = bool(request.form.get('verify_emails', None))
|
verify_emails = bool(request.form.get('verify_emails', None))
|
||||||
mail_tls = bool(request.form.get('mail_tls', None))
|
mail_tls = bool(request.form.get('mail_tls', None))
|
||||||
mail_ssl = bool(request.form.get('mail_ssl', None))
|
mail_ssl = bool(request.form.get('mail_ssl', None))
|
||||||
|
mail_useauth = bool(request.form.get('mail_useauth', None))
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
view_challenges_unregistered = None
|
view_challenges_unregistered = None
|
||||||
view_scoreboard_if_authed = None
|
view_scoreboard_if_authed = None
|
||||||
|
@ -123,6 +124,7 @@ def admin_config():
|
||||||
verify_emails = None
|
verify_emails = None
|
||||||
mail_tls = None
|
mail_tls = None
|
||||||
mail_ssl = None
|
mail_ssl = None
|
||||||
|
mail_useauth = None
|
||||||
finally:
|
finally:
|
||||||
view_challenges_unregistered = utils.set_config('view_challenges_unregistered', view_challenges_unregistered)
|
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)
|
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)
|
verify_emails = utils.set_config('verify_emails', verify_emails)
|
||||||
mail_tls = utils.set_config('mail_tls', mail_tls)
|
mail_tls = utils.set_config('mail_tls', mail_tls)
|
||||||
mail_ssl = utils.set_config('mail_ssl', mail_ssl)
|
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_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))
|
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_tls = utils.get_config('mail_tls')
|
||||||
mail_ssl = utils.get_config('mail_ssl')
|
mail_ssl = utils.get_config('mail_ssl')
|
||||||
|
mail_useauth = utils.get_config('mail_useauth')
|
||||||
|
|
||||||
view_challenges_unregistered = utils.get_config('view_challenges_unregistered')
|
view_challenges_unregistered = utils.get_config('view_challenges_unregistered')
|
||||||
view_scoreboard_if_authed = utils.get_config('view_scoreboard_if_authed')
|
view_scoreboard_if_authed = utils.get_config('view_scoreboard_if_authed')
|
||||||
|
@ -208,6 +212,7 @@ def admin_config():
|
||||||
hide_scores=hide_scores,
|
hide_scores=hide_scores,
|
||||||
mail_server=mail_server,
|
mail_server=mail_server,
|
||||||
mail_port=mail_port,
|
mail_port=mail_port,
|
||||||
|
mail_useauth=mail_useauth,
|
||||||
mail_username=mail_username,
|
mail_username=mail_username,
|
||||||
mail_password=mail_password,
|
mail_password=mail_password,
|
||||||
mail_tls=mail_tls,
|
mail_tls=mail_tls,
|
||||||
|
|
|
@ -131,6 +131,12 @@
|
||||||
placeholder="Mail Server Port"
|
placeholder="Mail Server Port"
|
||||||
{% if mail_port is defined and mail_port != None %}value="{{ mail_port }}"{% endif %}>
|
{% if mail_port is defined and mail_port != None %}value="{{ mail_port }}"{% endif %}>
|
||||||
</div>
|
</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">
|
<div class="form-group">
|
||||||
<label for="start">Username:</label>
|
<label for="start">Username:</label>
|
||||||
<input class="form-control" id='mail_username' name='mail_username' type='text'
|
<input class="form-control" id='mail_username' name='mail_username' type='text'
|
||||||
|
|
|
@ -436,12 +436,13 @@ def mailserver():
|
||||||
return False
|
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 = smtplib.SMTP(host, port)
|
||||||
smtp.ehlo()
|
smtp.ehlo()
|
||||||
if TLS:
|
if TLS:
|
||||||
smtp.starttls()
|
smtp.starttls()
|
||||||
smtp.ehlo()
|
smtp.ehlo()
|
||||||
|
if auth:
|
||||||
smtp.login(username, password)
|
smtp.login(username, password)
|
||||||
return smtp
|
return smtp
|
||||||
|
|
||||||
|
@ -477,6 +478,8 @@ def sendmail(addr, text):
|
||||||
data['TLS'] = get_config('mail_tls')
|
data['TLS'] = get_config('mail_tls')
|
||||||
if get_config('mail_ssl'):
|
if get_config('mail_ssl'):
|
||||||
data['SSL'] = 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)
|
smtp = get_smtp(**data)
|
||||||
msg = MIMEText(text)
|
msg = MIMEText(text)
|
||||||
|
|
|
@ -75,6 +75,7 @@ def setup():
|
||||||
mail_ssl = utils.set_config('mail_ssl', None)
|
mail_ssl = utils.set_config('mail_ssl', None)
|
||||||
mail_username = utils.set_config('mail_username', None)
|
mail_username = utils.set_config('mail_username', None)
|
||||||
mail_password = utils.set_config('mail_password', None)
|
mail_password = utils.set_config('mail_password', None)
|
||||||
|
mail_useauth = utils.set_config('mail_useauth', None)
|
||||||
|
|
||||||
setup = utils.set_config('setup', True)
|
setup = utils.set_config('setup', True)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue