diff --git a/extensions/webmail/imap_listing.py b/extensions/webmail/imap_listing.py index 572b430ad..066c699af 100644 --- a/extensions/webmail/imap_listing.py +++ b/extensions/webmail/imap_listing.py @@ -162,13 +162,17 @@ class IMAPconnector(object): return False, _("Connection to IMAP server failed, check your configuration") try: self.m.login(user, passwd) + except imap except (imaplib.IMAP4.error, ssl.SSLError), error: return False, _("Authentication failed, check your configuration") return True, None def logout(self): - self.m.close() + try: + self.m.close() + except imaplib.IMAP4.error: + pass self.m.logout() self.invalid = True diff --git a/extensions/webmail/main.py b/extensions/webmail/main.py index f399b0cff..a40993e83 100644 --- a/extensions/webmail/main.py +++ b/extensions/webmail/main.py @@ -54,11 +54,15 @@ def menu(**kwargs): def userlogin(**kwargs): from imap_listing import IMAPconnector + if kwargs["request"].user.id == 1: + return m = IMAPconnector(user=kwargs["request"].user.username, password=kwargs["password"]) def userlogout(**kwargs): from imap_listing import IMAPconnector + if kwargs["request"].user.id == 1: + return m = IMAPconnector(user=kwargs["request"].user.username) m.logout() diff --git a/templates/common/boxerror.html b/templates/common/boxerror.html new file mode 100644 index 000000000..ddebe672e --- /dev/null +++ b/templates/common/boxerror.html @@ -0,0 +1,4 @@ +{% extends "layout_simple.html" %} +{% block content %} +
{{ error }}