| « TLS IMAP with Courier on Debian | Sending mail on Debian » |
Mailman on Debian
07/19/06
Mailman on Debian
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... ![]()
