En Fr
Web/database development and more...
« TLS IMAP with Courier on DebianSending mail on Debian »

Mailman on Debian

07/19/06

English (US) Mailman on Debian

Permalink 11:02:13 pm, by Francois Planque Email , Categories: Linux stuff

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.pck

Make 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... &#59;)

Tags: debian, smtp

1 comment

Comment from: alex [Visitor] Email
alexThanks, saved me a lot of time!
07/21/06 @ 08:03