1Mailman - The GNU Mailing List Management System
2Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
351 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
4
5QMAIL ISSUES
6
7There are some issues that users of the qmail mail transport agent
8have encountered.  None of the core maintainers use qmail, so all of
9this information has been contributed by the Mailman user community,
10especially Martin Preishuber and Christian Tismer, with notes by
11Balazs Nagy (BN) and Norbert Bollow (NB).
12
13- You might need to set the mail-gid user to either "qmail", "mailman", or
14  "nofiles" by using the --with-mail-gid configure option.
15
16  BN: it highly depends on your mail storing policy.  For example if
17  you use the simple ~alias/.qmail-* files, you can use `id -g alias`.
18  But if you use /var/qmail/users, the specified mail gid can be
19  used.
20
21  If you are going to be directing virtual domains directly to the
22  "mailman" user (using "virtualdomains" on a list-only domain, for
23  example), you will have to use --with-mail-gid=<gid of mailman user's group>
24  This is incompatible with having list aliases in ~alias, unless that alias
25  simply forwards to "mailman-listname*".
26
27- If there is a user `mailman' on your system, the alias
28  `mailman-owner' will work only in ~mailman.  You have to do a "touch
29  .qmail-owner" in ~mailman directory to create this alias.
30
31  NB: An alternative, IMHO better solution is to `chown root
32  ~mailman', that will stop qmail from considering `mailman' to be a
33  user to whom mail can be delivered.  (See `man 8 qmail-getpw'.)
34
35- In a related issue, if you have any users with the same name as one
36  of your mailing lists, you will have problems if list names contain
37  `-' in them.  Putting .qmail redirections into the user's home
38  directory doesn't work because the Mailman wrappers will not get
39  spawned with the proper GID.  The solution is to put the following
40  lines in the /var/qmail/users/assign file:
41
42  +zope-:alias:112:11:/var/qmail/alias:-:zope-:
43  .
44
45  where in this case the listname is e.g. zope-users.
46
47  NB: Alternatively, you could host the lists on a virtual domain, and
48  use the /var/qmail/control/virtualdomains file to put the mailman
49  user in charge of this virtual domain.
50
51- BN: If inbound messages are delivered by another user than mailman,
52  it's necessary to allow it to access ~mailman.  Be sure that
53  ~mailman has group writing access and setgid bit is set.  Then put
54  the delivering user to mailman group, and you can deny access to
55  ~mailman to others.  Be sure that you can do the same with the WWW
56  service.
57
58  By the way the best thing is to make a virtual mail server to handle
59  all of the mail.  NB: E.g. make an additional "A" DNS record for the
60  virtual mailserver pointing to your IP address, add the line
61  `lists.kva.hu:mailman' to /var/qmail/control/virtualdomains and a
62  `lists.kva.hu' line to /var/qmail/control/rcpthosts file.  Don't
63  forget to HUP the qmail-send after modifying "virtualdomains".  Then
64  every mail to lists.kva.hu will arrive to mail.kva.hu's mailman
65  user.
66
67  Then make your aliases:
68      .qmail              => mailman@...'s letters
69      .qmail-owner        => mailman-owner's letters
70
71
72  For list aliases, you can either create them manually:
73      .qmail-list         => posts to the 'list' list
74      .qmail-list-admin   => posts to the 'list's owner
75      .qmail-list-request => requests to 'list'
76      etc
77
78  or for automatic list alias handling (when using the lists.kva.hu virtual
79  as above), see "contrib/qmail-to-mailman.py" in the Mailman distribution.
80  Modify the "~mailman/.qmail-default" to include:
81
82      |/path/to/python /path/to/qmail-to-mailman.py
83
84  and new lists will automatically be picked up.
85
86- You have to make sure that the localhost can relay.  If you start
87  qmail via inetd and tcpenv, you need some line the following in your
88  /etc/hosts.allow file:
89
90  tcp-env: 127. 10.205.200 : setenv RELAYCLIENT
91
92  where 10.205.200. is your IP address block.  If you use tcpserver, then you
93  need something like the following in your /etc/tcp.smtp file:
94
95  10.205.200.:allow,RELAYCLIENT=""
96  127.:allow,RELAYCLIENT=""
97
98- BN: Bigger /var/qmail/control/concurrencyremote values work better
99  sending outbound messages, within reason.  Unless you know your system
100  can handle it (many if not most cannot) this should not be set to a value
101  greater than 120.
102
103- More information about setting up qmail and relaying can be found in
104  the qmail documentation.
105
106BN: Last but not least, here's a little script to generate aliases to
107your lists (if for some reason you can/will not have them
108automatically picked up using "contrib/qmail-to-mailman.py"):
109
110This script is for the Mailman 2.0 series:
111#!/bin/sh
112if [ $# = 1 ]; then
113    i=$1
114    echo Making links to $i in the current directory...
115    echo "|preline /home/mailman/mail/mailman post $i" > .qmail-$i
116    echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-admin
117    echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-owner
118    echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-owner-$i
119    echo "|preline /home/mailman/mail/mailman mailcmd $i" > .qmail-$i-request
120fi
121
122This script is for the Mailman 2.1 series:
123Note: this is for a new Mailman 2.1 installation.  Users upgrading from
124      Mailman 2.0 would most likely change /usr/local/mailman to
125      /home/mailman.  If in doubt, refer to the --prefix option passed to
126      configure during compile time.
127
128#!/bin/sh
129if [ $# = 1 ]; then
130    i=$1
131    echo Making links to $i in the current directory...
132    echo "|preline /usr/local/mailman/mail/mailman post $i" > .qmail-$i
133    echo "|preline /usr/local/mailman/mail/mailman admin $i" > .qmail-$i-admin
134    echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces
135    # The following line is for VERP
136    # echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces-default
137    echo "|preline /usr/local/mailman/mail/mailman confirm $i" > .qmail-$i-confirm
138    echo "|preline /usr/local/mailman/mail/mailman join $i" > .qmail-$i-join
139    echo "|preline /usr/local/mailman/mail/mailman leave $i" > .qmail-$i-leave
140    echo "|preline /usr/local/mailman/mail/mailman owner $i" > .qmail-$i-owner
141    echo "|preline /usr/local/mailman/mail/mailman request $i" > .qmail-$i-request
142    echo "|preline /usr/local/mailman/mail/mailman subscribe $i" > .qmail-$i-subscribe
143    echo "|preline /usr/local/mailman/mail/mailman unsubscribe $i" > .qmail-$i-unsubscribe
144fi
145
146INFORMATION ON VERP
147
148You will note in the alias generating script for 2.1 above, there is a
149line for VERP that has been commented out.  If you are interested in VERP
150there are two options.  The first option is to allow Mailman to do the
151VERP formatting.  To activate this, uncomment that line and add the
152following lines to your mm_cfg.py file:
153
154VERP_FORMAT = '%(bounces)s-+%(mailbox)s=%(host)s'
155VERP_REGEXP = r'^(?P<bounces>.*?)-\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$'
156
157The second option is a patch on SourceForge located at:
158
159http://sourceforge.net/tracker/?func=detail&atid=300103&aid=645513&group_id=103
160
161This patch currently needs more testing and might best be suitable for
162developers or people well familiar with qmail.  Having said that, this
163patch is the more qmail-friendly approach resulting in large performance
164gains.
165
166VIRTUAL MAIL SERVER
167
168As mentioned in the ISSUES area for a virtual mail server, a patch under
169testing is located at:
170
171http://sf.net/tracker/index.php?func=detail&aid=621257&group_id=103&atid=300103
172
173Again, this patch is for people familiar with their qmail installation.
174
175MORE INFORMATION
176
177You might be interested in some information on modifying footers that
178Norbert Bollow has written about Mailman and qmail, available here:
179
180    http://mailman.cis.to/qmail-verh/
181
182
183Local Variables:
184mode: text
185indent-tabs-mode: nil
186End:
187