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