Here's the original document that was written for integrating Postfix and Mailman 2.0.
Requirements:
- Postfix 1.x/2.x
- Mailman 2.1
- separate sub-domain for mailing lists (ie. lists.foo.com)
NOTE: make sure you change the paths to mailman below.
Here's what you add to your /etc/postfix/aliases table:
____SNIP____ (append to) /etc/postfix/aliases
mailman "|/usr/local/home/mailman/listmgr/mail/mailman post $EXTENSION"
mailman-post "|/usr/local/home/mailman/listmgr/mail/mailman post $EXTENSION"
mailman-admin "|/usr/local/home/mailman/listmgr/mail/mailman admin $EXTENSION"
mailman-bounces "|/usr/local/home/mailman/listmgr/mail/mailman bounces $EXTENSION"
mailman-confirm "|/usr/local/home/mailman/listmgr/mail/mailman confirm $EXTENSION"
mailman-join "|/usr/local/home/mailman/listmgr/mail/mailman join $EXTENSION"
mailman-leave "|/usr/local/home/mailman/listmgr/mail/mailman leave $EXTENSION"
mailman-owner "|/usr/local/home/mailman/listmgr/mail/mailman owner $EXTENSION"
mailman-request "|/usr/local/home/mailman/listmgr/mail/mailman request $EXTENSION"
mailman-subscribe "|/usr/local/home/mailman/listmgr/mail/mailman subscribe $EXTENSION"
mailman-unsubscribe "|/usr/local/home/mailman/listmgr/mail/mailman unsubscribe $EXTENSION"
____SNIP____
NOTE: Be sure to change the domain!
Here's what you put in /etc/postfix/virtual-regexp:
____SNIP____ /etc/postfix/virtual-regexp
# mandatory
/^(postmaster|root|abuse)@lists\.foo\.com$/ $1@foo.com
# commands
/^([-a-zA-Z0-9_]+)-(post|admin|bounces|confirm|join|leave|owner|request|subscribe|unsubscribe)@lists\.foo\.com$/ mailman-$2+$1
# lists (command -post)
/^([-a-zA-Z0-9_]+)@lists\.foo\.com$/ mailman-post+$1
____SNIP____
Here's what you put in /etc/postfix/main.cf:
____SNIP____
virtual_maps = hash:$config_directory/virtual,
regexp:/etc/postfix/virtual-regexp
recipient_delimiter = +
mailbox_command = /usr/bin/procmail -a "$EXTENSION"
____SNIP____
Enjoy.