Installing the mailman package on Debian is easy… but at some point, you gotta run into exim4 configuration again! >:(
Fact is exim4 does not by default and strongly discourages using piping to programs in /etc/aliases… which unfortunately is the way mailman likes to get its incoming mail. Bleh! :|
After having tried a gazillion different things I finally managed to get it to work by adding the following into /etc/exima4/exim4.conf.template …
This is derived from http://www.exim.org/howto/mailman21.html .
Top of the file:
# Home dir for your Mailman installation -- aka Mailman's prefix # directory. # By default this is set to "/usr/local/mailman" # On a Red Hat/Fedora system using the RPM use "/var/mailman" # On Debian using the deb package use "/var/lib/mailman" # This is normally the same as ~mailman MM_HOME=/var/lib/mailman # # User and group for Mailman, should match your --with-mail-gid # switch to Mailman's configure script. # Value is normally "mailman" MM_UID=list MM_GID=list # # Domains that your lists are in - colon separated list # you may wish to add these into local_domains as well domainlist mm_domains=ns34611.ovh.net:b2evo.net:b2ee.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # # These values are derived from the ones above and should not need # editing unless you have munged your mailman installation # # The path of the Mailman mail wrapper script MM_WRAP=MM_HOME/mail/mailman # # The path of the list config file (used as a required file when # verifying list addresses) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pckMake sure you check the user and group here, as an error there will result in a very hard to detect error (no explicit log message anywere). I used “list” because that group of the handler ( /var/lib/mailman/mail/mailman ).
In the router section (after the system_aliases sub-section):
mailman_router:
driver = accept
domains = +mm_domains
require_files = MM_LISTCHK
local_part_suffix_optional
local_part_suffix = -admin : \
-bounces : -bounces+* : \
-confirm : -confirm+* : \
-join : -leave : \
-owner : -request : \
-subscribe : -unsubscribe
transport = mailman_transport
At the end of the transport section:
mailman_transport:
driver = pipe
command = MM_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID
I hope this can save some time to someone, someday… ;)
Comments from long ago:
Comment from: alex
Thanks, saved me a lot of time!
2006-07-21 08-03