[Mailman-Users] Exim and mailman - HOWTO

Nigel Metheringham Nigel.Metheringham at vdata.co.uk
Wed Aug 25 10:37:15 CEST 1999


Before I carefully forget this and have to rediscover it when someone 
asks about it, here is how I am configuring exim to work nicely with 
mailman.  Configs are for exim 3.0x, however these parts of the config 
have not changed so it should all work for older versions too.

It all looks rather longer and more complicated that my previous 
varient of this for handling smartlist, but thats basically because I 
found it too hard to use regular expressions and similar to collapse 
the admin, request and list functions all into one, so there are pretty 
much replicated sections for each subfunction.

BTW when a mailman list is created it "magically" appears as a working 
list to exim - no aliases, no reconfig and no restarting the daemon.

Config file fragments follow:-

## Transports section
##
## Three transports for list mail, request mail and admin mail
## respectively
## Mailman is installed in /home/mailman
## Mailman is configured to be invoked as user exim
list_transport:
           driver = pipe
           command = "/home/mailman/mail/wrapper post ${lc:$local_part}"
           current_directory = /home/mailman
           home_directory = /home/mailman
           user = exim
           group = exim

list_request_transport:
           driver = pipe
           command = "/home/mailman/mail/wrapper mailcmd 
${lc:$local_part}"
           current_directory = /home/mailman
           home_directory = /home/mailman
           user = exim
           group = exim

list_admin_transport:
           driver = pipe
           command = "/home/mailman/mail/wrapper mailowner 
${lc:$local_part}"
           current_directory = /home/mailman
           home_directory = /home/mailman
           user = exim
           group = exim

### end of transports section fragment

## Directors section [this deals with local addresses]
## 
## First 2 directors rewrite list-owner or owner-list to list-admin
## This is only done if the list exists.
## List existence checks are done by seeing if the file
## /home/mailman/lists/<list>/listinfo.html
## exists.  

list_owner_director:
   driver = smartuser
   require_files = /home/mailman/lists/${lc:$local_part}/listinfo.html
   suffix = "-owner"
   new_address = "${lc:$local_part}-admin@${domain}"

owner_list_director:
   driver = smartuser
   require_files = /home/mailman/lists/${lc:$local_part}/listinfo.html
   prefix = "owner-"
   new_address = "${lc:$local_part}-admin@${domain}"

##
## Next 3 directors direct admin, request and list mail to the 
appropriate
## transport.  List existence is checked as above.

list_admin_director:
   driver = smartuser
   suffix = -admin
   require_files = /home/mailman/lists/${lc:$local_part}/listinfo.html
   transport = list_admin_transport

list_request_director:
   driver = smartuser
   suffix = -request
   require_files = /home/mailman/lists/${lc:$local_part}/listinfo.html
   transport = list_request_transport

list_director:
   driver = smartuser
   require_files = /home/mailman/lists/${lc:$local_part}/listinfo.html
   transport = list_transport

## End of directors fragment
## End of config files bits

Basically thats everything.
Exim should be configured to allow reasonable volume - ie no setting 
max_recipients down to a silly value, and with normal degrees of 
security - ie allowing relaying from 127.0.0.1 (thats vital), but 
pretty much nothing else.  Parallel deliveries and other tweaks can 
also be used.
Delay warning messages should be switched off or configured to only 
happen for non-list mail - unless you like receiving tons of mail when 
a host is down.

Problems:-

 - Mailman's detection of exim bounces needs improving - it really
   should make use of the extra header information that exim
   provides.  It also should recognise and deal with or ignore
   delay warning messages.
 - List existence is checked on whether there is a listinfo.html
   file for a list.  If you delete lists by foul means, be aware of
   this.

Mailman config is very simple - you just need to make sure that the 
user in the transport configuration stanzas (exim in this case) is used 
as the mail user when configuring mailman, and that its installed in 
the right place.

Hope this stuff helps, and it would be nice if it could be integrated 
into the exim and/or mailman FAQs.

	Nigel.
-- 
[ Nigel Metheringham                  Nigel.Metheringham at VData.co.uk ]
[ Phone: +44 1423 850000                         Fax +44 1423 858866 ]






More information about the Mailman-Users mailing list