Package: mailman
Summary:  postfix+mailman+postfix-to-mailman.py breaks when
recipient_delimeter="-".

This bug was reported to Ubuntu as
https://bugs.launchpad.net/ubuntu/+source/mailman/+bug/529349

    a. Install postfix, mailman packages

         mail to user+...@example.com <user%2b...@example.com> should be
delivered to u...@example.com
         (because default postfix recipient_delimiter="+")

    b. Configure mailman according to instructions in
/usr/lib/mailman/bin/postfix-to-mailman.py
         i used a subdomain -- lists.example.com
         create a test list using a newlist.

         mail to t...@list.example.com should be delivered to your list.
         mail to test-ad...@list.example.com should be delivered to the list
admin.

    c. change postfix recipient_delimiter to "-".
         (add recipient_delimiter="-" to /etc/postfix/main.cf)
         restart postfix

         mail to user-...@example.com should be delivered to
u...@example.com

         mail to test-ad...@example.com will be erroneously sent to the test
list. postfix sees the recipient delimiter and strips it off before passing
it to the postfix-to-mailman.py script.

    d. apply attached patch.

         postfix will now pass the pre-processed email address (no
recipient_delimiter stripping) to postfix-to-mailman.py.

         mail to test-ad...@list.example.com will now correctly go to the
list admin.
diff --git a/mailman/postfix-to-mailman.py b/mailman/postfix-to-mailman.py
index 7e1aced..f29b672 100755
--- a/mailman/postfix-to-mailman.py
+++ b/mailman/postfix-to-mailman.py
@@ -100,7 +100,8 @@ def main():
         MailmanOwner = 'postmas...@localhost'
 
     try:
-        domain, local = [ a.lower() for a in sys.argv[1:] ]
+        domain, full = [ a.lower() for a in sys.argv[1:] ]
+        local = full.split("@")[0]
     except:
         # This might happen if we're not using Postfix or
         # /etc/postfix/master.cf is badly misconfigured
diff --git a/postfix/master.cf b/postfix/master.cf
index 28947fd..f606f49 100644
--- a/postfix/master.cf
+++ b/postfix/master.cf
@@ -79,5 +79,5 @@ scalemail-backend unix        -       n       n       -       
2       pipe
   flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store 
${nexthop} ${user} ${extension}
 mailman   unix  -       n       n       -       -       pipe
   flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
-  ${nexthop} ${user}
+  ${nexthop} ${recipient}
 

Reply via email to