Patches
| acceptutils | (unreleased) Offer SMTP AUTH without patch conflicts and with new user-controlled features. |
| destdir | Build as non-root, without hardcoded IDs, to a staging area. |
| mess822-qmailqueue | Apply Bruce Guenter’s QMAILQUEUE patch to mess822. |
| pymsgauth-filter | Filter submitted messages through Charles Cazabon’s pymsgauth using qmail-qfilter. |
| qbiffutmpx | Detect <utmpx.h> in case the OS no longer provides <utmp.h>. |
| qmail-qfilter-grandparent | Correlate qmail-qfilter(1) filters with qmail-smtpd or ofmipd sessions. |
| remote | Wrap qmail-remote with another program (inspired by QMAILQUEUE). |
| rfilter | (vaporware) Filter outbound messages — like qmail-qfilter but for qmail-remote. |
| rcptcheck | Apply Jay Soffian’s RCPTCHECK patch atop netqmail 1.06 with the TLS + SMTP AUTH combo patch. |
| rejectutils | Reject messages at SMTP according to multiple criteria without patch conflicts. |
Packages
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:
(Here’s the complete list of packages I maintain.)
More information
qmail is a toolkit of Unixy programs that can be composed to provide email services. I use it to run my own mail server, and have for a very long time. Sometimes I write about it.
The last version by qmail’s author was in 1998, the last community-based netqmail update was in 2007, and while a few folks maintain their own individual forks, there’s no longer an agreed “upstream”. Unmaintained though it is, I continue to find that
- qmail has remarkable design integrity, and
- This confers practical benefits.
I don’t want to maintain a fork, and I find it useful to pretend qmail is still maintained. When I can’t solve a problem without writing code, I try to write code that preserves or extends qmail’s integrity, code that maintainers (if they existed) might accept.
My patches target vanilla netqmail, aiming to be minimal, purpose-specific, and conflict-avoidant. Ideally qmail already provides a seam where small, self-contained code can hitch a ride at runtime; if not, I add one, then program to that interface.
With periodic small doses of careful incremental effort, I expect qmail’s utility to remain high for me indefinitely. If any of my efforts are also useful to you, so much the better.
