Why qmail is no longer a suitable Internet MTA

September 25, 2008

Here's a statement that's going to get me disliked: qmail is no longer suitable as an Internet mail transport agent, especially not as an inbound MTA (something that receives email from the outside world). There are two reasons for this, the direct problem and then the deeper problem.

The direct problem is that a default, unpatched qmail setup handles unknown local addresses by accepting them at SMTP time and then bouncing them. This was okay when qmail was new a decade ago but it is no longer acceptable today; doing this makes qmail completely unsuitable as an inbound MTA unless you enjoy getting blacklisted and spamming innocent bystanders.

The deeper problem is why qmail continues to use 'accept then bounce', namely that qmail is effectively not maintained and on the Internet, unmaintained software rots. The reasons for this are complex (and political), but the simple summary is that for a long time qmail's license didn't permit distributing modified versions (just patches), and Dan Bernstein didn't seem to have any interest in modifying qmail.

While qmail has recently been released into the public domain and a version of it has started to be updated, I don't think that it solves either problem. It doesn't solve the accept then bounce problem because, well, the updated version still does accept-then-bounce, and it doesn't solve the lack of maintenance because by now, the people who would maintain qmail are those that have been self-selected to feel that it doesn't need much maintenance; the people who feel otherwise have long since been driven away by the lack of updates.


Comments on this page:

From 83.160.8.165 at 2008-09-25 03:28:35:

So what, in your opinion, is an appropriate replacement?

From 98.214.65.235 at 2008-09-25 08:54:53:

Postfix!

From 208.44.121.252 at 2008-09-25 10:25:44:

Dan Bernstein will go to hell for his log file formats, if nothing else

By cks at 2008-09-28 22:48:08:

The simple answer is that an appropriate replacement is something without qmail's flaws: an MTA that is under active development and that natively does rejection at SMTP time. I believe that Postfix qualifies, along with at least Exim, Sendmail, and ZMailer.

The more complex answer is that it depends on why you're running qmail. No single replacement mailer has all of qmail's virtues, so which virtues you need will affect which alternate is a useful replacement; for example, if you were running qmail for security reasons I suspect that Postfix would be the only viable replacement.

Written on 25 September 2008.
« How we lie to our Makefiles
The aesthetics of syntactic sugar »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu Sep 25 01:11:28 2008
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.