FAQ
changeset 0 068428edee47
equal deleted inserted replaced
-1:000000000000 0:068428edee47
       
     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.