What is qmail?
NOTE: I recommend using netqmail 1.05, instead of original qmail.
Jul's qmail patches
- qmail-1.03-mfcheck.4.patch: it checks envelope sender (MAIL FROM: domain address) in DNS. Warning: it is not intended to filter out spammers, just a precaution not to accept mails from knowningly illegal addresses, and you'll get a lot less double bounce messages. Besides, it conforms with RFC 2821, section 3.6. Many thanks to Salvatore Toribio to help find a nasty bug around bounce checks.
- qmail-1.03-reread-concurrency.2.patch: it rereads control/concurrencylocal and control/concurrencyremote files when qmail-send receives a HUP signal.
Jul's recommended qmail patches
I don't like patches which want to do too much (eg. boundled patches), or which does something in a Wrong Way™, or do something good in wrong place.
- Adrian Ho's qmail-remote RFC2821 compliance patch,
- The latest qmail-verh patch (latest from Bernhard Graf), which can substitute VERH information into any message (esp. for ezmlm lists),
- André Oppermann's fix for Silly qmail syndrome, which useful for sites getting large amount of incoming mail,
- badrcptto patch by Ward Vandewege: it is simply left out from original qmail.
- QMAILQUEUE patch: Until now I thought that Bruce Guenter did something wrong with this, just because you can do the same thing without the need of this patch. This is false, because with this patch you can make different routes to different stages, eg. not to filter mail which are already filtered.
- Phil Edwards' fix for the errno bug: C was standardized in 1989, but until now some libc's had backwards compatibility with older errno implementation. Glibc 2.3.1 removed that compatibility.
- qmail-local-tab patch by Matthias Andree. While it's not a showstopper, maybe it can cause a problem.
- qmail-link-sync.patch helps keeping sync the queue so you can mount /var/qmail/queue in async mode.
- qmail for OSX patch to compile and run qmail on a Macintosh.
Jul's recommended packages for qmail
Here's an environment I like to use with qmail:
- daemontools: this package keeps running qmail and boundled services.
- daemontools-conf: configuration package for daemontools.
- ucspi-tcp: this is the TCP server of SMTP, IMAP, POP3. See my ucspi-tcp patches.
- djbdns is a small footprint, secure, and reliable DNS server and cache. Use at least local cache to be sure your qmail works with excellent backend.
- djbdns-conf: configuration package for djbdns.
- Courier IMAP: this is a full-featured IMAP server which handles Maildir mailboxes.
- SquirrelMail: a very cool webmail suite with PHP.
- vpopmail is a virtual mailer domain handler with command-line interface.
- qmailadmin: web interface to vpopmail. With this, you can handle ezmlm email lists. It's a must have.
- autoresponder: vacation-like package to handle automatic bounce messages. Used by qmailadmin.
- ezmlm is a simple but powerful mailing list manager. Use with ezmlm-idx. Once you installed ezmlm-idx-0.40, you should upgrade to 0.41, distributed by Máté Wierdl. You should consider utilizing my patches too.
- mailfront: qmail-smtpd drop-in replacement to handle SMTP AUTH. I haven't got enough time to test it throughoutly, but I think this one is good from Bruce Guenther.
- qmail-remove: if you have large queues (with full of jammed spam), you can delete them from the queue. Warning: turn qmail off before deleting.
- queue-repair: Charles Cazabon's qmail queue repairer, which fixes your messed-up qmail queue (or generates a new one). It can be handy when you want to move (back-up, filesystem replace, etc) your queue. Of course, you have to do this with qmail-send turned off.