From abd924aea614f90f179d4f2572265168776c68ba Mon Sep 17 00:00:00 2001 From: tonio Date: Sun, 9 Jan 2011 18:44:43 +0100 Subject: [PATCH] see #107 Removed remaining use of full_address to search for a mailbox. --- extensions/postfix_autoreply/scripts/autoreply.py | 10 ++-------- extensions/webmail/views.py | 11 ++++++----- lib/__init__.py | 10 ++++++++++ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/extensions/postfix_autoreply/scripts/autoreply.py b/extensions/postfix_autoreply/scripts/autoreply.py index b55f14fe5..e3b2573d1 100755 --- a/extensions/postfix_autoreply/scripts/autoreply.py +++ b/extensions/postfix_autoreply/scripts/autoreply.py @@ -5,7 +5,7 @@ import sys import smtplib from email.mime.text import MIMEText import datetime -from modoboa.lib import parameters +from modoboa.lib import split_mailbox, parameters from modoboa.admin.models import Mailbox from modoboa.extensions.postfix_autoreply import main from modoboa.extensions.postfix_autoreply.models import ARmessage, ARhistoric @@ -49,13 +49,7 @@ if __name__ == "__main__": sender = sys.argv[1] for fulladdress in sys.argv[2:]: - parts = fulladdress.split('@') - if len(parts) == 2: - address = parts[0] - domain = parts[1] - else: - domain = parts[-1] - address = "@".join(parts[:-1]) + address, domain = split_mailbox(fulladdress) try: mbox = Mailbox.objects.get(address=address, domain__name=domain) except Mailbox.DoesNotExist: diff --git a/extensions/webmail/views.py b/extensions/webmail/views.py index 8c205d465..f4c8f3d8f 100644 --- a/extensions/webmail/views.py +++ b/extensions/webmail/views.py @@ -10,7 +10,7 @@ from django.core.urlresolvers import reverse from django.contrib.auth.decorators import login_required from modoboa.admin.models import Mailbox from modoboa.lib import parameters, _render, _render_error, \ - getctx, is_not_localadmin, _render_to_string + getctx, is_not_localadmin, _render_to_string, split_mailbox from modoboa.lib.email_listing import parse_search_parameters, Paginator from lib import * from forms import * @@ -327,12 +327,13 @@ def send_mail(request, withctx=False, origmsg=None, posturl=None): else: msg = MIMEText(body.encode(charset), _subtype=subtype) - mb = Mailbox.objects.get(full_address=request.POST["from_"]) msg["Subject"] = request.POST["subject"] - if mb is None: - msg["From"] = request.POST["from_"] - else: + address, domain = split_mailbox(request.POST["from_"]) + try: + mb = Mailbox.objects.get(address=address, domain__name=domain) msg["From"] = "%s <%s>" % (mb.name, request.POST["from_"]) + except Mailbox.DoesNotExist: + msg["From"] = request.POST["from_"] msg["To"] = request.POST["to"] msg["Message-ID"] = make_msgid() msg["User-Agent"] = "Modoboa" diff --git a/lib/__init__.py b/lib/__init__.py index 87c36671e..88534b2ce 100644 --- a/lib/__init__.py +++ b/lib/__init__.py @@ -173,3 +173,13 @@ def crypt_password(password): if scheme == "md5": return hashlib.md5(password).hexdigest() return password + +def split_mailbox(mailbox): + parts = mailbox.split('@') + if len(parts) == 2: + address = parts[0] + domain = parts[1] + else: + domain = parts[-1] + address = "@".join(parts[:-1]) + return (address, domain)