diff --git a/modoboa/admin/postfix_maps.py b/modoboa/admin/postfix_maps.py index a1c58d410..328d734cd 100644 --- a/modoboa/admin/postfix_maps.py +++ b/modoboa/admin/postfix_maps.py @@ -118,8 +118,9 @@ class SenderLoginMap(object): "(SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb " "INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id" " INNER JOIN admin_domain dom ON dom.id=mb.domain_id" + " INNER JOIN admin_domainalias adom ON adom.target_id=dom.id" " INNER JOIN admin_alias al ON alr.alias_id=al.id " - "WHERE al.enabled=1 AND al.address='%s')" + "WHERE al.enabled=1 AND (al.address='%s' OR (adom.name='@d' AND al.address='%u'||'@'||dom.name)))" ) postgres = ( "(SELECT email FROM core_user WHERE email='%s' AND is_active) " @@ -132,8 +133,9 @@ class SenderLoginMap(object): "(SELECT mb.address || '@' || dom.name FROM admin_mailbox mb " "INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id" " INNER JOIN admin_domain dom ON dom.id=mb.domain_id" + " INNER JOIN admin_domainalias adom ON adom.target_id=dom.id" " INNER JOIN admin_alias al ON alr.alias_id=al.id " - "WHERE al.enabled AND al.address='%s')" + "WHERE al.enabled AND (al.address='%s' OR (adom.name='@d' AND al.address='%u'||'@'||dom.name)))" ) sqlite = ( "SELECT email FROM core_user WHERE email='%s' AND is_active=1 " @@ -146,6 +148,7 @@ class SenderLoginMap(object): "SELECT mb.address || '@' || dom.name FROM admin_mailbox mb " "INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id " "INNER JOIN admin_domain dom ON dom.id=mb.domain_id " + "INNER JOIN admin_domainalias adom ON adom.target_id=dom.id " "INNER JOIN admin_alias al ON alr.alias_id=al.id " - "WHERE al.enabled=1 AND al.address='%s'" + "WHERE al.enabled=1 AND (al.address='%s' OR (adom.name='@d' AND al.address='%u'||'@'||dom.name))" )