diff --git a/modoboa/extensions/webmail/lib.py b/modoboa/extensions/webmail/lib.py index 582433ca9..e78463b75 100644 --- a/modoboa/extensions/webmail/lib.py +++ b/modoboa/extensions/webmail/lib.py @@ -695,8 +695,12 @@ def send_mail(request, posturl=None): s.login(request.user.username, get_password(request)) except smtplib.SMTPException, e: raise WebmailError(str(e)) - s.sendmail(request.user.email, rcpts, msg.as_string()) - s.quit() + try: + s.sendmail(request.user.email, rcpts, msg.as_string()) + s.quit() + except smtplib.SMTPException, e: + raise WebmailError(str(e)) + sentfolder = parameters.get_user(request.user, "SENT_FOLDER") IMAPconnector(user=request.user.username, password=request.session["password"]).push_mail(sentfolder, msg) diff --git a/modoboa/lib/emailutils.py b/modoboa/lib/emailutils.py index d13cffc36..bc58ea1b3 100644 --- a/modoboa/lib/emailutils.py +++ b/modoboa/lib/emailutils.py @@ -218,6 +218,9 @@ def decode(s, encodings=('utf8', 'latin1', 'windows-1252', 'ascii'), charset=Non def prepare_addresses(addresses, usage="header"): """Prepare addresses before using them + FIXME: We need a real address parser here! If a name contains a + separator, it creates two wrong addresses. + :param list addresses: a list of addresses :param string usage: how those addresses are going to be used :return: a string or a list depending on usage value