diff --git a/admin/forms.py b/admin/forms.py index 9492e1c00..403f8e15e 100644 --- a/admin/forms.py +++ b/admin/forms.py @@ -4,7 +4,8 @@ from modoboa.admin.models import * from django.utils.translation import ugettext as _ from django.contrib.auth.models import User from modoboa.admin.templatetags.admin_extras import gender -from modoboa.lib import tables, split_mailbox +from modoboa.lib import tables +from modoboa.lib.emailutils import split_mailbox class DomainForm(forms.ModelForm): class Meta: diff --git a/admin/views.py b/admin/views.py index aff0c36dc..4cdb61d17 100644 --- a/admin/views.py +++ b/admin/views.py @@ -17,7 +17,8 @@ from models import * from admin.permissions import * from modoboa.lib import crypt_password from modoboa.lib import _render, ajax_response, ajax_simple_response, \ - getctx, events, parameters, split_mailbox + getctx, events, parameters +from modoboa.lib.emailutils import split_mailbox from modoboa.lib.models import Parameter import copy @@ -252,6 +253,7 @@ def mailboxes_raw(request, dom_id=None): def mailboxes_search(request): if request.method != "POST": return + addr = EmailAddress(request.POST["search"]) local_part, domain = split_mailbox(request.POST["search"]) query = Q(address__startswith=local_part) if domain is not None and domain != "": diff --git a/extensions/postfix_autoreply/scripts/autoreply.py b/extensions/postfix_autoreply/scripts/autoreply.py index e3b2573d1..3d90adbbf 100755 --- a/extensions/postfix_autoreply/scripts/autoreply.py +++ b/extensions/postfix_autoreply/scripts/autoreply.py @@ -5,7 +5,8 @@ import sys import smtplib from email.mime.text import MIMEText import datetime -from modoboa.lib import split_mailbox, parameters +from modoboa.lib import parameters +from modoboa.lib.emailutils import split_mailbox from modoboa.admin.models import Mailbox from modoboa.extensions.postfix_autoreply import main from modoboa.extensions.postfix_autoreply.models import ARmessage, ARhistoric diff --git a/lib/__init__.py b/lib/__init__.py index 690b7e982..27999c802 100644 --- a/lib/__init__.py +++ b/lib/__init__.py @@ -197,20 +197,3 @@ def crypt_password(password): return hashlib.md5(password).hexdigest() return password -def split_mailbox(mailbox): - """Try to split a mailbox in two parts - - :return: a 2-uple (local part, domain) - """ - try: - mailbox.index("@") - except ValueError: - return mailbox, None - parts = mailbox.split('@') - if len(parts) == 2: - address = parts[0] - domain = parts[1] - else: - domain = parts[-1] - address = "@".join(parts[:-1]) - return (address, domain) diff --git a/lib/emailutils.py b/lib/emailutils.py index 33552c025..badaf1f90 100644 --- a/lib/emailutils.py +++ b/lib/emailutils.py @@ -176,3 +176,21 @@ class Email(object): body = re.sub("<(/?)body", lambda m: "<%sdiv" % m.group(1), body) body = Template(body).render(Context({})) return body + +def split_mailbox(mailbox): + """Tries to split a mailbox in two parts (local part and domain name) + + :return: a 2-uple (local part, domain) + """ + try: + mailbox.index("@") + except ValueError: + return mailbox, None + parts = mailbox.split('@') + if len(parts) == 2: + address = parts[0] + domain = parts[1] + else: + domain = parts[-1] + address = "@".join(parts[:-1]) + return (address, domain) diff --git a/tools/pfxadmin_migrate/migrate.py b/tools/pfxadmin_migrate/migrate.py index 1226a002d..e61b7774c 100755 --- a/tools/pfxadmin_migrate/migrate.py +++ b/tools/pfxadmin_migrate/migrate.py @@ -48,7 +48,8 @@ from django.db.models import Q from django.contrib.auth.models import Group import modoboa.admin.models as md_models import models as pf_models -from modoboa.lib import split_mailbox, exec_cmd +from modoboa.lib import exec_cmd +from modoboa.lib.emailutils import split_mailbox def migrate_domain_aliases(domain, options): print "\tMigrating domain aliases" diff --git a/userprefs/forms.py b/userprefs/forms.py index cd954f746..d7bbbfe28 100644 --- a/userprefs/forms.py +++ b/userprefs/forms.py @@ -3,7 +3,7 @@ from modoboa.admin.models import Domain from modoboa.lib import _check_password from django.contrib.auth.models import check_password from django.utils.translation import ugettext as _ -from modoboa.lib import split_mailbox +from modoboa.lib.emailutils import split_mailbox class BadDestination(Exception): pass