From 2c2b4a48fe02f7d04abf2f3d026fe30865ad4556 Mon Sep 17 00:00:00 2001 From: tonio Date: Tue, 21 Dec 2010 10:01:23 +0100 Subject: [PATCH] fixed #108 Added new listbox to handle all possible modes. --- extensions/webmail/main.py | 7 +++++-- extensions/webmail/views.py | 12 +++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/extensions/webmail/main.py b/extensions/webmail/main.py index 993be572d..c8bcd1c04 100644 --- a/extensions/webmail/main.py +++ b/extensions/webmail/main.py @@ -27,8 +27,11 @@ def init(): parameters.register_admin("SMTP_AUTHENTICATION", type="list_yesno", deflt="no", help=_("Server needs authentication")) - parameters.register_admin("SMTP_SECURED", type="list_yesno", - deflt="no", + parameters.register_admin("SMTP_SECURED_MODE", type="list", + values=[("none", _("None")), + ("starttls", "STARTTLS"), + ("ssl", "SSL/TLS")], + deflt="none", help=_("Use a secured connection to access SMTP server")) parameters.register_user("REFRESH_INTERVAL", type="int", deflt=300, diff --git a/extensions/webmail/views.py b/extensions/webmail/views.py index 76678d5de..d547ea269 100644 --- a/extensions/webmail/views.py +++ b/extensions/webmail/views.py @@ -305,9 +305,15 @@ def send_mail(request, withctx=False, origmsg=None, posturl=None): rcpts += msg["Cc"].split(",") error = None try: - s = smtplib.SMTP(parameters.get_admin("SMTP_SERVER")) - if parameters.get_admin("SMTP_SECURED") == "yes": - s.starttls() + secmode = parameters.get_admin("SMTP_SECURED_MODE") + if secmode == "ssl": + s = smtplib.SMTP_SSL(parameters.get_admin("SMTP_SERVER"), + int(parameters.get_admin("SMTP_PORT"))) + else: + s = smtplib.SMTP(parameters.get_admin("SMTP_SERVER"), + int(parameters.get_admin("SMTP_PORT"))) + if secmode == "starttls": + s.starttls() except (smtplib.SMTPException, ssl.SSLError), text: error = text if error is None: