chiark / gitweb /
Merge branches 'idx/verh' and 'idx/qmqpc'
[qmail] / FAQ
1 1. Controlling the appearance of outgoing messages
2 1.1. How do I set up host masquerading?
3 1.2. How do I set up user masquerading?
4 1.3. How do I set up Mail-Followup-To automatically?
5
6 2. Routing outgoing messages
7 2.1. How do I send local messages to another host?
8 2.2. How do I set up a null client?
9 2.3. How do I send outgoing mail through UUCP?
10 2.4. How do I set up a separate queue for a SLIP/PPP link?
11 2.5. How do I deal with ``CNAME lookup failed temporarily''?
12
13 3. Routing incoming messages by host
14 3.1. How do I receive mail for another host name?
15 3.2. How do I set up a virtual domain?
16 3.3. How do I set up several virtual domains for one user?
17
18 4. Routing incoming messages by user
19 4.1. How do I forward unrecognized usernames to another host?
20 4.2. How do I set up a mailing list?
21 4.3. How do I use majordomo with qmail?
22 4.4. How do I use procmail with qmail?
23 4.5. How do I use elm's filter with qmail?
24 4.6. How do I create aliases with dots?
25 4.7. How do I use sendmail's .forward files with qmail?
26 4.8. How do I use sendmail's /etc/aliases with qmail?
27 4.9. How do I make qmail defer messages during NFS or NIS outages?
28 4.10. How do I change which account controls an address?
29
30 5. Setting up servers
31 5.1. How do I run qmail-smtpd under tcpserver?
32 5.2. How do I set up qmail-qmtpd?
33 5.3. How do I set up qmail-pop3d?
34 5.4. How do I allow selected clients to use this host as a relay?
35 5.5. How do I fix up messages from broken SMTP clients?
36 5.6. How do I set up qmail-qmqpd?
37
38 6. Configuring MUAs to work with qmail
39 6.1. How do I make BSD mail generate a Date with the local time zone?
40 6.2. How do I make pine work with qmail?
41 6.3. How do I make MH work with qmail?
42 6.4. How do I stop Sun's dtcm from hanging?
43
44 7. Managing the mail system
45 7.1. How do I safely stop qmail-send?
46 7.2. How do I manually run the queue?
47 7.3. How do I rejuvenate a message?
48 7.4. How do I organize a big network?
49 7.5. How do I back up and restore the queue disk?
50 7.6. How do I run a supervised copy of qmail?
51 7.7. How do I avoid syslog?
52
53 8. Miscellany
54 8.1. How do I tell qmail to do more deliveries at once?
55 8.2. How do I keep a copy of all incoming and outgoing mail messages?
56 8.3. How do I switch slowly from sendmail to qmail?
57
58
59
60 1. Controlling the appearance of outgoing messages
61
62
63 1.1. How do I set up host masquerading? All the users on this host,
64 zippy.af.mil, are users on af.mil. When joe sends a message to fred, the
65 message should say ``From: joe@af.mil'' and ``To: fred@af.mil'', without
66 ``zippy'' anywhere.
67
68 Answer: echo af.mil > /var/qmail/control/defaulthost; chmod 644
69 /var/qmail/control/defaulthost.
70
71
72 1.2. How do I set up user masquerading? I'd like my own From lines to
73 show boss@af.mil rather than god@heaven.af.mil.
74
75 Answer: Add MAILHOST=af.mil and MAILUSER=boss to your environment. To
76 override From lines supplied by your MUA, add QMAILINJECT=f to your
77 environment.
78
79
80 1.3. How do I set up Mail-Followup-To automatically? When I send a
81 message to the sos@heaven.af.mil mailing list, I'd like to include
82 ``Mail-Followup-To: sos@heaven.af.mil''.
83
84 Answer: Add QMAILMFTFILE=$HOME/.lists to your environment, and put
85 sos@heaven.af.mil into ~/.lists.
86
87
88
89 2. Routing outgoing messages
90
91
92 2.1. How do I send local messages to another host? All the mail for
93 af.mil should be delivered to our disk server, pokey.af.mil. I've set up
94 an MX from af.mil to pokey.af.mil, but when a user on the af.mil host
95 sends a message to boss@af.mil, af.mil tries to deliver it locally. How
96 do I stop that?
97
98 Answer: Remove af.mil from /var/qmail/control/locals. If qmail-send is
99 running, give it a HUP. Make sure the MX is set up properly before you
100 do this. Also make sure that pokey can receive mail for af.mil---see
101 question 3.1.
102
103
104 2.2. How do I set up a null client? I'd like zippy.af.mil to
105 send all mail to bigbang.af.mil.
106
107 Answer: echo :bigbang.af.mil > /var/qmail/control/smtproutes;
108 chmod 644 /var/qmail/control/smtproutes. Disable local delivery as in
109 question 2.1. Turn off qmail-smtpd in /etc/inetd.conf.
110
111
112 2.3. How do I send outgoing mail through UUCP? I need qmail to send all
113 outgoing mail via UUCP to my upstream UUCP site, gonzo.
114
115 Answer: Put
116
117    :alias-uucp
118
119 into control/virtualdomains and
120
121    |preline -df /usr/bin/uux - -r -gC
122       -a"${SENDER:-MAILER-DAEMON}" gonzo!rmail "($DEFAULT@$HOST)"
123
124 (all on one line) into ~alias/.qmail-uucp-default. (For some UUCP
125 software you will need to use -d instead of -df.) If qmail-send is
126 running, give it a HUP.
127
128
129 2.4. How do I set up a separate queue for a SLIP/PPP link?
130
131 Answer: Use serialmail (http://pobox.com/~djb/serialmail.html).
132
133
134 2.5. How do I deal with ``CNAME lookup failed temporarily''? The log
135 showed that a message was deferred for this reason. Why is qmail doing
136 CNAME lookups, anyway?
137
138 Answer: The SMTP standard does not permit aliased hostnames, so qmail
139 has to do a CNAME lookup in DNS for every recipient host. If the
140 relevant DNS server is down, qmail defers the message. It will try again
141 soon.
142
143
144
145 3. Routing incoming messages by host
146
147
148 3.1. How do I receive mail for another host name? I'd like our disk
149 server, pokey.af.mil, to receive mail addressed to af.mil. I've set up
150 an MX from af.mil to pokey.af.mil, but how do I get pokey to treat
151 af.mil as a name for the local host?
152
153 Answer: Add af.mil to /var/qmail/control/locals and to
154 /var/qmail/control/rcpthosts. If qmail-send is running, give it a HUP
155 (or do svc -h /var/run/qmail if qmail is supervised).
156
157
158 3.2. How do I set up a virtual domain? I'd like any mail for
159 nowhere.mil, including root@nowhere.mil and postmaster@nowhere.mil and
160 so on, to be delivered to Bob. I've set up the MX already.
161
162 Answer: Put
163
164    nowhere.mil:bob
165
166 into control/virtualdomains. Add nowhere.mil to control/rcpthosts. If
167 qmail-send is running, give it a HUP (or do svc -h /var/run/qmail if
168 qmail is supervised).
169
170 Now mail for whatever@nowhere.mil will be delivered locally to
171 bob-whatever. Bob can set up ~bob/.qmail-default to catch all the
172 possible addresses, ~bob/.qmail-info to catch info@nowhere.mil, etc.
173
174
175 3.3. How do I set up several virtual domains for one user? Bob wants
176 another virtual domain, everywhere.org, but he wants to handle
177 nowhere.mil users and everywhere.org users differently. How can we do
178 that without setting up a second account?
179
180 Answer: Put two lines into control/virtualdomains:
181
182    nowhere.mil:bob-nowhere
183    everywhere.org:bob-everywhere
184
185 Add nowhere.mil and everywhere.org to control/rcpthosts. If qmail-send
186 is running, give it a HUP (or do svc -h /var/run/qmail if qmail is
187 supervised).
188
189 Now Bob can set up separate .qmail-nowhere-* and everywhere-* files. He
190 can even set up .qmail-nowhere-default and .qmail-everywhere-default.
191
192
193
194 4. Routing incoming messages by user
195
196
197 4.1. How do I forward unrecognized usernames to another host? I'd like
198 to set up a LUSER_RELAY pointing at bigbang.af.mil.
199
200 Answer: Put
201
202    | forward "$LOCAL"@bigbang.af.mil
203
204 into ~alias/.qmail-default.
205
206
207 4.2. How do I set up a mailing list? I'd like me-sos@my.host.name to be
208 forwarded to a bunch of people.
209
210 Answer: Put a list of addresses into ~me/.qmail-sos, one per line. Then
211 incoming mail for me-sos will be forwarded to each of those addresses.
212 You should also touch ~me/.qmail-sos-owner so that bounces come back to
213 you rather than the original sender.
214
215 Alternative: ezmlm (http://pobox.com/~djb/ezmlm.html) is a modern
216 mailing list manager, supporting automatic subscriptions, confirmations,
217 archives, fully automatic bounce handling (including warnings to
218 subscribers saying which messages they've missed), and more.
219
220
221 4.3. How do I use majordomo with qmail?
222
223 Answer: See ftp://ftp.eyrie.org/pub/software/majordomo/mjqmail and
224 http://www.qmail.org for various methods. majordomo 2.0 is expected to
225 support qmail directly.
226
227 Beware that majordomo's lists are not crashproof.
228
229
230
231 4.4. How do I use procmail with qmail?
232
233 Answer: Put 
234
235    | preline procmail
236
237 into ~/.qmail. You'll have to use a full path for procmail unless
238 procmail is in the system's startup PATH. Note that procmail will try to
239 deliver to /var/spool/mail/$USER by default; to change this, see
240 INSTALL.mbox.
241
242
243 4.5. How do I use elm's filter with qmail?
244
245 Answer: Put 
246
247    | preline filter
248
249 into ~/.qmail. You'll have to use a full path for filter unless filter
250 is in the system's startup PATH.
251
252
253 4.6. How do I create aliases with dots? I tried setting up
254 ~alias/.qmail-P.D.Q.Bach, but it doesn't do anything.
255
256 Answer: Use .qmail-p:d:q:bach. Dots are converted to colons, and
257 uppercase is converted to lowercase.
258
259
260 4.7. How do I use sendmail's .forward files with qmail?
261
262 Answer: Install the dot-forward package
263 (http://pobox.com/~djb/dot-forward.html).
264
265
266 4.8. How do I use sendmail's /etc/aliases with qmail?
267
268 Answer: Install the fastforward package
269 (http://pobox.com/~djb/fastforward.html).
270
271
272 4.9. How do I make qmail defer messages during NFS or NIS outages? If
273 ~joe suddenly disappears, I'd like mail for joe to be deferred.
274
275 Answer: Build a qmail-users database, so that qmail no longer checks
276 home directories and the password database. This takes three steps.
277 First, put your complete user list (including local and NIS passwords)
278 into /var/qmail/users/passwd. Second, run
279
280    # qmail-pw2u -h < /var/qmail/users/passwd > /var/qmail/users/assign
281
282 Here -h means that every user must have a home directory; if you happen
283 to run qmail-pw2u during an NFS outage, it will print an error message
284 and stop. Third, run
285
286    # qmail-newu
287
288 Make sure to rebuild the database whenever you change your user list.
289
290
291 4.10. How do I change which account controls an address? I set up
292 ~alias/.qmail-www, but qmail is looking at ~www/.qmail instead.
293
294 Answer: If you do
295
296    # chown root ~www
297
298 then qmail will no longer consider www to be a user; see qmail-getpw.0.
299 For more precise control over address assignments, see qmail-users.0.
300
301
302
303 5. Setting up servers
304
305
306 5.1. How do I run qmail-smtpd under tcpserver? inetd is barfing at high
307 loads, cutting off service for ten-minute stretches. I'd also like
308 better connection logging.
309
310 Answer: First, install the tcpserver program, part of the ucspi-tcp
311 package (http://pobox.com/~djb/ucspi-tcp.html). Second, remove the smtp
312 line from /etc/inetd.conf, and put the line
313
314    tcpserver -u 7770 -g 2108 0 smtp /var/qmail/bin/qmail-smtpd &
315
316 into your system startup files. Replace 7770 with your qmaild uid, and
317 replace 2108 with your nofiles gid. Don't forget the &. The change will
318 take effect at your next reboot.
319
320 By default, tcpserver allows at most 40 simultaneous qmail-smtpd
321 processes. To raise this limit to 400, use tcpserver -c 400. To keep
322 track of who's connecting and for how long, run (on two lines)
323
324    tcpserver -v -u 7770 -g 2108 0 smtp /var/qmail/bin/qmail-smtpd \
325    2>&1 | /var/qmail/bin/splogger smtpd 3 &
326
327
328 5.2. How do I set up qmail-qmtpd?
329
330 Answer: Two steps. First, put a
331
332    qmtp 209/tcp
333
334 line into /etc/services. Second, put (all on one line)
335
336    qmtp stream tcp nowait qmaild
337    /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-qmtpd
338
339 into /etc/inetd.conf, and give inetd a HUP.
340
341 If you have tcpserver installed, skip the inetd step, and set up
342
343    tcpserver -u 7770 -g 2108 0 qmtp /var/qmail/bin/qmail-qmtpd &
344
345 replacing 7770 and 2108 with the qmaild uid and nofiles gid. See
346 question 5.1 for more details on tcpserver.
347
348
349 5.3. How do I set up qmail-pop3d? My old POP server works with mbox
350 delivery; I'd like to switch to maildir delivery.
351
352 Answer: Four steps. First, install the checkpassword program
353 (http://pobox.com/~djb/checkpwd.html). Second, make sure you have a
354
355    pop3 110/tcp
356
357 line in /etc/services. Third, put (all on one line, including
358 qmail-popup twice)
359
360    pop3 stream tcp nowait root
361    /var/qmail/bin/qmail-popup qmail-popup
362    YOURHOST /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
363
364 into /etc/inetd.conf, and give inetd a HUP; replace YOURHOST with your
365 host's fully qualified domain name. Fourth, set up Maildir delivery for
366 any user who wants to read mail via POP.
367
368 If you have tcpserver installed, skip the inetd step, and set up (on two
369 lines)
370
371    tcpserver 0 pop3 /var/qmail/bin/qmail-popup YOURHOST \
372    /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &
373
374 replacing YOURHOST with your host's fully qualified domain name. See
375 question 5.1 for more details on tcpserver.
376
377 Security note: pop3d should be used only within a secure network;
378 otherwise an eavesdropper can steal passwords.
379
380
381 5.4. How do I allow selected clients to use this host as a relay? I see
382 that qmail-smtpd rejects messages to any host not listed in
383 control/rcpthosts.
384
385 Answer: Three steps. First, install tcp-wrappers, available separately,
386 including hosts_options. Second, change your qmail-smtpd line in
387 inetd.conf to
388
389    smtp stream tcp nowait qmaild /usr/local/bin/tcpd
390    /var/qmail/bin/tcp-env /var/qmail/bin/qmail-smtpd
391
392 (all on one line) and give inetd a HUP. Third, in tcpd's hosts.allow,
393 make a line setting the environment variable RELAYCLIENT to the empty
394 string for the selected clients:
395
396    tcp-env: 1.2.3.4, 1.2.3.5: setenv = RELAYCLIENT
397
398 Here 1.2.3.4 and 1.2.3.5 are the clients' IP addresses. qmail-smtpd
399 ignores control/rcpthosts when RELAYCLIENT is set. (It also appends
400 RELAYCLIENT to each envelope recipient address. See question 5.5 for an
401 application.)
402
403 Alternative procedure, if you are using tcpserver 0.80 or above: Create
404 /etc/tcp.smtp containing
405
406    1.2.3.6:allow,RELAYCLIENT=""
407    127.:allow,RELAYCLIENT=""
408
409 to allow clients with IP addresses 1.2.3.6 and 127.*. Run
410
411    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
412
413 Finally, insert
414
415    -x /etc/tcp.smtp.cdb
416
417 after tcpserver in your qmail-smtpd invocation.
418
419
420 5.5. How do I fix up messages from broken SMTP clients?
421
422 Answer: Three steps. First, put
423
424    | bouncesaying 'Permission denied' [ "@$HOST" != "@fixme" ]
425    | qmail-inject -f "$SENDER" -- "$DEFAULT"
426
427 into ~alias/.qmail-fixup-default. Second, put
428
429    fixme:fixup
430
431 into /var/qmail/control/virtualdomains, and give qmail-send a HUP.
432 Third, follow the procedure in question 5.4, but set RELAYCLIENT to the
433 string ``@fixme'':
434
435    tcp-env: 1.2.3.6, 1.2.3.7: setenv = RELAYCLIENT @fixme
436
437 Here 1.2.3.6 and 1.2.3.7 are the clients' IP addresses. If you are using
438 tcpserver instead of inetd and tcpd, put
439
440    1.2.3.6:allow,RELAYCLIENT="@fixme"
441    1.2.3.7:allow,RELAYCLIENT="@fixme"
442
443 into /etc/tcp.smtp, and run tcprules as in question 5.4.
444
445
446 5.6. How do I set up qmail-qmqpd? I'd like to allow fast queueing of
447 outgoing mail from authorized clients.
448
449 Answer: Make sure you have installed tcpserver 0.80 or above. Create
450 /etc/qmqp.tcp in tcprules format to allow connections from authorized
451 hosts. For example, if queueing is allowed from 1.2.3.*:
452
453    1.2.3.:allow
454    :deny
455
456 Convert /etc/qmqp.tcp to /etc/qmqp.cdb:
457
458    tcprules /etc/qmqp.cdb /etc/qmqp.tmp < /etc/qmqp.tcp
459
460 Finally, set up
461
462    tcpserver -x /etc/qmqp.cdb -u 7770 -g 2108 0 628 /var/qmail/bin/qmail-qmqpd &
463
464 replacing 7770 and 2108 with the qmaild uid and nofiles gid. See
465 question 5.1 for more details on tcpserver.
466
467
468
469 6. Configuring MUAs to work with qmail
470
471
472 6.1. How do I make BSD mail generate a Date with the local time zone?
473 When I send mail, I'd rather use the local time zone than GMT, since
474 some MUAs don't know how to display Date in the receiver's time zone.
475
476 Answer: Put
477
478    set sendmail=/var/qmail/bin/datemail
479
480 into your .mailrc or your system-wide Mail.rc. Beware that BSD mail is
481 neither secure nor reliable.
482
483
484 6.2. How do I make pine work with qmail?
485
486 Answer: Put
487
488    sendmail-path=/usr/lib/sendmail -oem -oi -t
489
490 into /usr/local/lib/pine.conf. (This will work with sendmail too.)
491 Beware that pine is neither secure nor reliable.
492
493
494 6.3. How do I make MH work with qmail?
495
496 Answer: Put
497
498    postproc: /usr/mh/lib/spost
499
500 into each user's .mh_profile. (This will work with sendmail too.) Beware
501 that MH is neither secure nor reliable.
502
503
504 6.4. How do I stop Sun's dtcm from hanging?
505
506 Answer: There is a novice programming error in dtcm, known as ``failure
507 to close the output side of the pipe in the child.'' Sun has, at the
508 time of this writing, not yet provided a patch. Sorry.
509
510
511
512 7. Managing the mail system
513
514
515 7.1. How do I safely stop qmail-send? Back when we were running
516 sendmail, it was always tricky to kill sendmail without risking the loss
517 of current deliveries; what should I do with qmail-send?
518
519 Answer: Go ahead and kill the qmail-send process. It will shut down
520 cleanly. Wait for ``exiting'' to show up in the log. To restart qmail,
521 run /var/qmail/rc the same way it is run from your system boot scripts,
522 with the proper PATH, resource limits, etc.
523
524 Alternative, if qmail is supervised: svc -t /var/run/qmail. The
525 supervise process will kill qmail, wait for it to stop, and restart it.
526 Use -d instead of -t if you don't want qmail to restart automatically;
527 to manually restart it, use -u.
528
529
530 7.2. How do I manually run the queue? I'd like qmail to try delivering
531 all the remote messages right now.
532
533 Answer: Give the qmail-send process an ALRM. (Do svc -a /var/run/qmail
534 if qmail is supervised.)
535
536 You may want to run qmail-tcpok first, to guarantee that qmail-remote
537 will try all addresses. Normally, if an address fails repeatedly,
538 qmail-remote leaves it alone for an hour.
539
540
541 7.3. How do I rejuvenate a message? Somebody broke into Eric's computer
542 again; it's going to be down for at least another two days. I know Eric
543 has been expecting an important message---in fact, I see it sitting here
544 in /var/qmail/queue/mess/15/26902. It's been in the queue for six days;
545 how can I make sure it isn't bounced tomorrow?
546
547 Answer: Just touch /var/qmail/queue/info/15/26902. (This is the only
548 form of queue modification that's safe while qmail is running.)
549
550
551 7.4. How do I organize a big network? I have a lot of machines, and I
552 don't know where to start.
553
554 Answer: First, choose the domain name where your users will receive
555 mail. This is normally the shortest domain name you control. If you are
556 in charge of *.movie.edu, you can use addresses like joe@movie.edu.
557
558 Second, choose the machine that will know what to do with different
559 users at movie.edu. Set up a host name in DNS for this machine:
560
561    mailhost.movie.edu IN A 1.2.3.4
562    4.3.2.1.in-addr.arpa IN PTR mailhost.movie.edu
563
564 Here 1.2.3.4 is the IP address of that machine.
565
566 Third, make a list of machines where mail should end up. For example, if
567 mail for Bob should end up on Bob's workstation, put Bob's workstation
568 onto the list. For each of these machines, set up a host name in DNS:
569
570    bobshost.movie.edu IN A 1.2.3.7
571    7.3.2.1.in-addr.arpa IN PTR bobshost.movie.edu
572
573 Fourth, install qmail on bobshost.movie.edu. qmail will automatically
574 configure itself to accept messages for bob@bobshost.movie.edu and
575 deliver them to ~bob/Mailbox on bobshost. Do the same for the other
576 machines where mail should end up.
577
578 Fifth, install qmail on mailhost.movie.edu. Put
579
580    movie.edu:alias-movie
581
582 into control/virtualdomains on mailhost. Then forward bob@movie.edu to
583 bob@bobshost.movie.edu, by putting
584
585    bob@bobshost.movie.edu
586
587 into ~alias/.qmail-movie-bob. Do the same for other users.
588
589 Sixth, put movie.edu into control/rcpthosts on mailhost.movie.edu, so
590 that mailhost.movie.edu will accept messages for users at movie.edu.
591
592 Seventh, set up an MX record in DNS to deliver movie.edu messages to
593 mailhost:
594
595    movie.edu IN MX 10 mailhost.movie.edu
596
597 Eighth, on all your machines, put movie.edu into control/defaulthost.
598
599
600 7.5. How do I back up and restore the queue disk?
601
602 Answer: You can't.
603
604 One difficulty is that you can't get a consistent snapshot of the queue
605 while qmail-send is running. Another difficulty is that messages in the
606 queue must have filenames that match their inode numbers.
607
608 However, the big problem is that backups---even twice-daily backups---
609 are far too unreliable for mail. If your disk dies, there will be very
610 little overlap between the messages saved in the last backup and the
611 messages that were lost.
612
613 There are several ways to add real reliability to a mail server. Battery
614 backups will keep your server alive, letting you park the disk to avoid
615 a head crash, when the power goes out. Solid-state disks have their own
616 battery backups. RAID boxes let you replace dead disks without losing
617 any data.
618
619
620 7.6. How do I run a supervised copy of qmail? svc sounds useful.
621
622 Answer: Install daemontools (http://pobox.com/~djb/daemontools.html).
623 Create a /var/run/qmail directory. Change
624
625    /var/qmail/rc
626
627 to
628
629    supervise /var/run/qmail /var/qmail/rc
630
631 in your boot scripts. Make sure that supervise is in the startup PATH.
632 Now you can use svc to stop or restart qmail, and svstat to check
633 whether qmail is running.
634
635
636 7.7. How do I avoid syslog? It chews up a lot of CPU time and isn't
637 reliable.
638
639 Answer: Install daemontools (http://pobox.com/~djb/daemontools.html).
640 Make a /var/log/qmail directory, owned by qmaill, mode 2700. Do
641
642    qmail-start ./Mailbox /usr/local/bin/accustamp \
643    | setuser qmaill /usr/local/bin/cyclog /var/log/qmail &
644
645 in /var/qmail/rc.
646
647 If you are logging tcpserver connections, make a /var/log/smtpd
648 directory, and use cyclog /var/log/smtpd for tcpserver. You shouldn't
649 run several copies of cyclog with the same log directory.
650
651 By default, cyclog keeps 10 automatically rotated log files, each
652 containing up to 100KB of log data. To keep 20 files with 1MB each, use
653 cyclog -s 1000000 -n 20.
654
655
656
657 8. Miscellany
658
659
660 8.1. How do I tell qmail to do more deliveries at once? It's running
661 only 20 parallel qmail-remote processes.
662
663 Answer: Decide how many deliveries you want to allow at once. Put that
664 number into control/concurrencyremote. Restart qmail-send as in question
665 7.1. If your system has resource limits, make sure you set the
666 descriptors limit to at least double the concurrency plus 5; otherwise
667 you'll get lots of unnecessary deferrals whenever a big burst of mail
668 shows up. Note that qmail also imposes a compile-time concurrency limit,
669 120 by default; this is set in conf-spawn.
670
671
672 8.2. How do I keep a copy of all incoming and outgoing mail messages?
673
674 Answer: Set QUEUE_EXTRA to "Tlog\0" and QUEUE_EXTRALEN to 5 in extra.h.
675 Recompile qmail. Put ./msg-log into ~alias/.qmail-log.
676
677 You can also use QUEUE_EXTRA to, e.g., record the Message-ID of every
678 message: run
679
680    | awk '/^$/ { exit } /^[mM][eE][sS][sS][aA][gG][eE]-/ { print }'
681
682 from ~alias/.qmail-log.
683
684
685 8.3. How do I switch slowly from sendmail to qmail? I'm thinking of
686 moving the heaven.af.mil network over to qmail, but first I'd like to
687 give my users a chance to try out qmail without affecting current
688 sendmail deliveries. We're using NFS.
689
690 Answer: Find a host in your network, say pc.heaven.af.mil, that isn't
691 running an SMTP server. (If addresses at pc.heaven.af.mil are used, you
692 should already have an MX pointing pc.heaven.af.mil to your mail hub.)
693
694 Set up a new MX record pointing lists.heaven.af.mil to pc.heaven.af.mil.
695 Install qmail on pc.heaven.af.mil. Replace pc with lists in the control
696 files. Make the qmail man pages available on all your machines.
697
698 Now tell your users about qmail. A user can forward joe@heaven.af.mil to
699 joe@lists.heaven.af.mil to get ~/Mailbox delivery; he can set up .qmail
700 files; he can start running his own mailing lists @lists.heaven.af.mil.
701
702 When you're ready to turn sendmail off, you can set up pc.heaven.af.mil
703 as your new mail hub. Add heaven.af.mil to control/locals, and change
704 the heaven.af.mil MX to point to pc.heaven.af.mil. Make sure you leave
705 lists.heaven.af.mil in control/locals so that transition addresses will
706 continue to work.