Add Debian directory
[mspang/vmailman.git] / debian / README.Exim4.Debian
1 Here's a way to integrate mailman with Exim4 that will automatically
2 play nice with mailman's virtual domains support and VERP. It does not
3 require dedicating domain(s) to mailman.
4
5 Configure your Mailman (in /etc/mailman/mm_cfg.py) with:
6
7 MTA = 'Postfix'
8 POSTFIX_ALIAS_CMD = '/bin/true'
9 POSTFIX_MAP_CMD = 'chgrp Debian-exim'
10
11 and list all your Mailman domains in "POSTFIX_STYLE_VIRTUAL_DOMAINS".
12
13 Please note that the chgrp command above will not work when creating a
14 list in the web interface: the user www-data will not be allowed to do
15 this. You can circumvent this problem by creating new lists with the
16 'newlist' command line command or using instead:
17 POSTFIX_MAP_CMD = 'chmod o+r'
18 This will allow local users (with shell access to the list server) to
19 see the list of all Mailman mailing lists, but not much more.
20
21 Put this in your exim4 main configuration (if you use a split config,
22 for example /etc/exim4/conf.d/main/04_local_mailman_macros)
23
24 ---------------------- BEGIN EXIM4 MAIN   ----------------------------
25 # Home dir for your Mailman installation -- aka Mailman's prefix
26 # directory.
27 MAILMAN_HOME=/var/lib/mailman
28 MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
29
30 # User and group for Mailman, should match your --with-mail-gid
31 # switch to Mailman's configure script.
32 MAILMAN_USER=list
33 MAILMAN_GROUP=daemon
34 ----------------------  END EXIM4 MAIN    ----------------------------
35
36
37 Put this in your exim4 router configuration (if you use a split
38 config, then for example /etc/exim4/conf.d/router/970_local_mailman)
39
40 ---------------------- BEGIN EXIM4 ROUTER ----------------------------
41 # Messages get sent out with
42 # envelope from "mailman-bounces@virtual_domain"
43 # But mailman doesn't put such addresses
44 # in the aliases. Recognise these here.
45 mailman_workaround:
46   domains = +local_domains
47   require_files = MAILMAN_HOME/lists/$local_part/config.pck
48   driver = accept
49   local_parts = mailman
50   local_part_suffix_optional
51   local_part_suffix = -bounces : -bounces+* : \
52            -confirm+* : -join : -leave : \
53            -subscribe : -unsubscribe : \
54            -owner : -request : -admin
55   transport = mailman_transport
56   group = MAILMAN_GROUP
57
58 # Mailman lists
59 mailman_router:
60   domains = +local_domains
61   condition = ${lookup{$local_part@$domain}lsearch{MAILMAN_HOME/data/virtual-mailman}{1}{0}}
62   require_files = MAILMAN_HOME/lists/$local_part/config.pck
63   driver = accept
64   local_part_suffix_optional
65   local_part_suffix = -bounces : -bounces+* : \
66                       -confirm+* : -join : -leave : \
67                       -subscribe : -unsubscribe : \
68                       -owner : -request : -admin
69   transport = mailman_transport
70   group = MAILMAN_GROUP
71 ----------------------  END EXIM4 ROUTER  ----------------------------
72
73 Put this in your exim4 transport configuration (if you use a split
74 config, then for example /etc/exim4/conf.d/transport/40_local_mailman)
75
76 ---------------------- BEGIN EXIM4 TRANSPORT -------------------------
77 mailman_transport:
78   driver = pipe
79   command = MAILMAN_WRAP \
80             '${if def:local_part_suffix \
81                   {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
82                   {post}}' \
83             $local_part
84   current_directory = MAILMAN_HOME
85   home_directory = MAILMAN_HOME
86   user = MAILMAN_USER
87   group = MAILMAN_GROUP
88   freeze_exec_fail = true
89 ----------------------  END EXIM4 TRANSPORT  -------------------------
90
91 You are done!
92
93  -- Lionel Elie Mamane <lmamane@debian.org>, Wed, 29 Nov 2006 19:53:13 +0100