mvmf: mvmtr Design Thoughts

mvmf: mvmtr Design Thoughts

Briefly, the original goal behind mvmtr was:

To build up an MTA here, starting by implementing the current qmail-smtpd functions that I am using (local hacks and all) and eliminating all of the functions and quirks of qmail-smtpd that I find useless or annoying or worse. It may happen that I don't like the result and abandon it. qmail-smtpd is so lightweight that a first pass should be relatively simple to do; it's the further passes that will make it interesting. However even the first pass may be worth doing.

The mvmda Mail Delivery Agent was written in a qmail environment. I like many of the features of qmail and continue to use it. However it can't really be used in any non-trivial way out of the box, more so as time goes by. I've hacked on the qmail-smtpd in use here quite a lot, to the point where it probably is quite different from "qmail-smtpd"s in use elsewhere. Whenever I go to look into changing qmail-smtpd for one thing or another I am struck by how non-robust it is, and how little I like working with the code. (The latter is subjective of course; probably people say that about mine too.) So I'm always left with thinking that I'd really like a different code base that does some of the same things that qmail does and that more readily lends itself to modification and improvement. Further, there are just some fundamental changes that I want to make in the way the smtpd agent works. For example, I am not a big fan of the "bazillion individual control files that have to be opened and read at each program invocation" style, and so I want to use a different control interface. There are other popular MTAs that I've avoided for one reason or another, and there are other qmail-smtpd re-implementations that I've looked at and that don't suit the goals here very well. So I figure I'll play around a little and see where I get.

Goals