The qmail home page

Mirrors: [US, Sprintlink & MCI] [US, CerfNet & UUNET] [US, MCI] [Britain] [Britain] [Canada] [France] [Germany] [Israel] [Japan] [Poland] [South Africa] [Taiwan] [add a mirror]
[mirroring software]

qmail is a modern replacement for sendmail, written by Dan Bernstein, who also has a web page for qmail. qmail is a secure package and offers a $1,000.00 prize for anyone who can show otherwise.

There is a discussion list and announcements list for qmail users, maintained by Dan Bernstein using qmail, of course. There's also an archive. You can search it, just be sure to mention qmail in your query. There is also an FAQ, providing answers to frequently-asked questions.

   User-Contributed Support and Documentation  

Documentation and support contributed by users and supports of the qmail ideal.

  • Commercial support for qmail is available from Crynwr Software. Support is available through an 800 number. Crynwr accepts Visa/MC/Amex.
  • Commercial support for qmail is also available from Mira Networking. Support is available over the Internet and Mira accepts Visa/MC/Amex/Diners.
  • qmail manual pages converted to HTML as a tarball, and individually.
  • Yet another HTML version of the Qmail 1.00 man pages.

   Author's Enhancement Software for qmail  

Enhancements and additions to qmail by its author, Dan Bernstein.

  • Dan Bernstein's ezmlm, a mailing list manager specifically for qmail. Jacques Deguest HTMLized the ezmlm Man pages. Fred Lindberg and Fred B. Ringel have written an ezmlm FAQ.
  • Dan Bernstein's serialmail package delivers mail from a Maildir to an SMTP server.
  • Dan Bernstein's Unix Client-Server TCP package makes ordinary Unix programs into TCP/IP servers and/or clients. In particular its tcpserver program may be used with qmail instead of inetd.
  • Dan Bernstein's TCPcontrol package works with his Unix Client-Server TCP package to control what IP addresses may connect, and it also logs connections. Ivan Kohler has a tcprange program which allows you to specify a range of addresses in conjunction with tcpcontrol.

   User-Contributed Software for Qmail  

General software contributed by users and supports of the qmail ideal.

  • Russell Nelson has a patch to qmail and ucspi-tcp to use the MAPS RBL to keep spam out of your system by refusing network connections from known spammers.
  • Fred Lindberg has an add-on to ezmlm-0.53 which gives you headers, trailers, threaded digests, multi-message get, thread retrieval in MIME multipart/digest with headers filtered to make the digest rfc1153-like (default), and
  • Fred Lindberg is the latest author of code to ensure that an ezmlm subscriber is on the list
  • Özgür Kesim has a ezmlm HOWTO for advanced mailing lists.
  • Russell Nelson has a system for allowing SMTP access only to users who have valid POP3 access. This is for sites that need to allow relaying for customers, but who don't know where their customers are coming in from (and hence can't use FAQ 5.5).
  • Harald Hanche-Olsen has written a wrapper for qmail, which lets you easily start, stop and restart it. He's also written some code to do dot-locking. Dot-locking slightly unreliable, so Dan doesn't support it in qmail. It's at the page above.
  • David Summers has a qmail-imap Linux RPMS plus just the patches if you want to patch the University of Washington IMAP server with just the one-line patch to get it to work with $HOME/Mailbox.
  • Ali Lomonaco has a patch for finger so it knows to look in $HOME for a Mailbox. It was written for the finger from FreeBSD 2.2.2, which is probably the standard BSD finger.
  • Chael Hall has some utility programs for qmail. One, logger2, responds to a kill-HUP by reopening the file named on its command line for output. The second,, is a perl script which will restart qmail after you have changed a control file.
  • Chael Hall's majordomo+qmail patches. Making qmail and Majordomo 1.94 (or later) coexist peacefully.
  • Giles Lean didn't like the idea of patching majordomo, so following a suggestion from J.T. Conklin that he found in the list archives he wrote a majordomo-inject script and some documentation on how to use it. Needs Perl 5.004.
  • Julie Baumler is using UIUC's ph to redirect mail on her mail hub. She wrote a note on how to configure qmail to use ph.
  • Vince Vielhaber wrote up some instructions on how to make qpopper work with home directory mailboxes.
  • Ximenes Zalteca has a qpopper-2.4 SRPM available which contains a PAMified qpopper with the ~/Mailbox patch applied.
  • Ximenes Zalteca has SysVinit scripts, which are for use with RedHat Linux (and undoubtedly any other SysVinit-using OS). They control qmail, qmail-smtpd, and Qualcomm's qpopper via the following tools: tcpserver, tcpcontrol, cyclog, setuser, supervise, svc, svcstat, accustamp, errosto.
  • Olaf Titz's BSMTP package for qmail, for those who want to run BSMTP over UUCP with qmail. The 10k shar contains an rsmtp program for incoming messages and a maildir2bsmtp program for outgoing messages. Both are written in perl.
  • Russell Nelson's checkhomeownership script will report on users who don't own their home directories or Maildirs. This is important to run before starting up qmail, because sendmail doesn't care a whit whether the user owns their home directory, but home directory ownership is how qmail decides if the user exists or not. If you have a mail hub, and you've botched the home directory ownership, the users will never be logging into it, so they won't notice. And you won't notice either, until they run screaming to you that they haven't gotten the important mail they wanted, and their correspondent noted that the mail bounced.
  • David Summers has some perl scripts that work with maildir2smtp. Now uses APOP-style authentication.
  • Russell Nelson's newbox script to create new maildrops for users who don't have login accounts on their mail server.
  • John Palkovic's program, which creates a mailing list out of a list of email addresses.
  • Russell Nelson has a bounce manager which totally eliminates any need to deal with bounces. This is the final version of bounceman. Ezmlm uses a better algorithm, so I've switched to it.
  • Chris Garrigues wrote a program to pretty-print Received: lines.
  • Brian T. Wightman has written a delayed-mail notifier.
  • Mark Delany has a rmail for people receiving ! addresses via UUCP. It parses ! addresses, applies a number of simple pattern matching rules to convert them to FQDN addresses and injects them into qmail.
  • Russell Nelson has a pair of programs to help keep spam out of your mailbox.
  • Jos Backus has a program to be run from a .qmail file, toolarge, which checks for mail messages that are too large.
  • Russell Nelson has a program to eliminate duplicate messages. It has two modes of operation -- strict and loose. Strict only eliminates perfect duplicates, whose only difference is in the Received: lines. Loose eliminates duplicates that have identical From: Date:, Message-Id: and body parts.

   User-Contributed Maildir Support  

Maildir-specific software contributed by users and supports of the qmail ideal. Maildir is a lock-free mailbox standard which is reliable over NFS.

   Living with Qmail - Tips & Advice  

Some good advice for new qmail users, contributed by qmail users.

  • Did you restart qmail? I find that to be a help for a lot of qmail problems. :-) [John Mitchell]
  • You should also check the permissions very carefully on all of the necessary directories and files. [John Mitchell]
  • You must also put the virtual domain into control/rcpthosts or the mailer will bounce the message with a notice saying that the host wasn't in rcpthosts. [John Mitchell]
  • Of course, you must also be the MX for the virtual hosts. I had a problem in my setup that was driving me nuts until I realized that my DNS provider had missed an MX update request. [John Mitchell]
  • Check all lines in beginning with M. Any that contain P=[IPC] or P=[TCP] should also have E=\r\n. [Tim Goodwin]
  • You might want to limit posting to mailing lists.
  • The right-hand-side of entries in control/virtualdomains should begin with a username. If you don't use a username, the mail will be handled by ~alias. But if you forget, and create a user by that name, then the mail will suddenly be handled by the user, which is probably not what you intended to happen. Best to use, in this case, alias as the username and avoid trouble. [Russ Nelson]
  • remember to add 'preline' before procmail or other filters when moving .forward to .qmail. [Ira Abramov]
  • Run qmail from an init.d script [Larry Doolittle]

   Alternative Checkpasswords Implementations  

qmail-popup and qmail-pop3d are glued together by a program called checkpassword. It's run by qmail-popup, reads the username and password handed to the POP3 daemon, looks them up in /etc/passwd, verifies them, switches to the username/home directory, and runs pop3d. At least that's what the standard one does. Some alternatives are listed below.

   Yet More Qmail Addons  

Still need something more from qmail? The chances are good that you can find it here, contributed by users and supports of the qmail ideal.

Send kudos/brickbats to Russell Nelson. Some design contributed by Steve Cole.