I’ve been using qmail for a long time. It’s a toolkit of Unixy programs that can be composed to provide email services. To meet my and some others’ needs, I’ve extended the toolkit.


I almost always install qmail from pkgsrc, because it’s packaged according to my taste and offers useful build-time options. A few of the qmail-related pkgsrc packages I’m responsible for:

  • ?djbdns
  • ?djbdns-run
  • ?ezmlm
  • ?ezmlm-idx
  • ?getmail
  • ?mess822
  • ?pymsgauth
  • ?qmail
  • qmail-run
  • ?spamdyke

(You’ll notice lots more qmail-related packages in the complete list of packages I maintain.)


The destdir patch allows qmail to build as non-root, without hardcoded IDs, to a staging area. If you’re a packager, or otherwise trying to automate your builds, this patch may be useful to you.

The pymsgauth-tag patch adds a pymsgauth-tag program to Charles Cazabon’s pymsgauth that does the same job as pymsgauth-mail, but for messages submitted via SMTP or OFMIP. If you don’t submit mail via qmail-inject(8) or qmail’s sendmail(8) wrapper, but you post to DJB’s lists, this patch may be useful to you.

The QMAILREMOTE patch is like the QMAILQUEUE patch, but for qmail-remote(8). If you want to wrap qmail-remote with another program — for instance, to DKIM-sign outgoing mail — this patch may be useful to you.

The RCPTCHECK patch (a modified version of Jay Soffian’s original) allows qmail to flexibly SMTP-reject envelope recipients or senders. If Jay’s original patch doesn’t apply cleanly to your source tree, this patch may be useful to you.

The rejectutils patch adds several standalone programs for selectively rejecting messages. If you’re looking to SMTP-reject messages according to multiple criteria, and/or are dealing with qmail-smtpd(8) patch conflicts, this patch may be useful to you.


  • qmail-smtpup, a very small SMTP AUTH wrapper that runs as root, then runs unpatched qmail-smtpd or ofmipd as the authenticated user. Once this isn’t vaporware, I’ll actually use pymsgauth-tag, via rejectutils’s qmail-qfilter-ofmipd-queue.

My qmail-related writings

qmail + submission + rewrite headers
Posted Sat May 27 12:37:16 2017 by Amitai Schleier
qmail + outbound DKIM
Posted Mon May 22 12:48:58 2017 by Amitai Schleier
Automation for mail hosting
Posted Tue Mar 28 14:26:58 2017 by Amitai Schleier
qmail + SMTP AUTH + TLS redux
Posted Wed Jan 18 14:42:55 2017 by Amitai Schleier
New Year's Slack
Posted Thu Jan 5 12:42:06 2017 by Amitai Schleier
djbware goes public domain
Posted Fri Nov 30 11:23:11 2007 by Amitai Schlair
pkgsrcCon 2007: Packaging djbware
Posted Sun Apr 29 11:00:00 2007 by Amitai Schlair
qmail + spam filtering
Posted Wed Mar 7 03:08:33 2007 by Amitai Schlair
qmail + IMAP-before-SMTP
Posted Wed Feb 28 10:03:26 2007 by Amitai Schlair
qmail + NetBSD nightly maintenance
Posted Wed Feb 7 04:28:11 2007 by Amitai Schlair
qmail + badrcptto - patches
Posted Mon Jan 15 01:42:01 2007 by Amitai Schlair
qmail + SMTP AUTH + SSL + TLS - patches
Posted Sun Jan 14 03:39:43 2007 by Amitai Schlair
pkgsrcCon 2005: Packaging Complex Software
Posted Sun May 8 14:00:00 2005 by Amitai Schlair