Note: this is work in progress and far from complete.
Some additional goals are:
MeTA1 is a modern message transfer agent (MTA) comparable to qmail and postfix. All of these MTAs have a common architecture: they use several (communicating) modules in contrast to monolithic MTAs like sendmail or exim. The architecture of a modern MTA consists of:
In MeTA1 all modules are implemented as persistent processes: they are started once and keep on running until shutdown. MeTA1 uses POSIX threads for the address resolver and queue manager, and statethreads for the SMTP server and client.
At the other end of the spectrum is the approach taken by qmail: almost all processes are started only on demand and operate on a single message after which they terminate.
A middle approach is taken by postfix: most processes terminate after a certain time or after they processed a certain number of messages.
Each of these approaches has advantages and disadvantages, some of which depend on the operating system (OS) on which the MTA is running. For example, some OS perform fairly bad with respect to starting processes, which makes qmail perform worse than the other MTAs on them. MeTA1 actually allows to combine multiple processes with multiple threads, which in turn makes it possible to fine-tune it for the specific performance profiles of different OSs.
qmail is basically configured via lots of (small) files.
MeTA1 uses a single configuration file with free layout which mostly follows C syntax.
postfix
uses two different configuration files:
master.cf
has a fixed layout where each logical line defines
a single service
(its syntax is probably inspired by inetd.conf(5)
).
main.cf
uses a simple line oriented layout
which is of the form
parameter = value
MeTA1 supports a pmilter interface similar to the milter interface of sendmail 8 for filtering in the SMTP server. It is also planned to provide a plugin architecture for the other modules.
qmail can be extended by writing C code. As there has not been a new release for many years, the API is stable.
postfix supports most of the milter interface of sendmail 8 as well as some of its own extensions for content filtering.
Most people do not (actively) choose an MTA,
but they simply use what comes with their OS
(which may explain why sendmail was so popular).
Those who actively choose an MTA
do it usually based on personal preferences
instead of objective criteria.
This may be as strange as
I don't like the author/community of xyz
or as simple as
I prefer this configuration file syntax/style.
Other factors (besides those listed above) may include (free/commercial) support and (active) development.
Copyright 2010 © Claus Aßmann; all rights reserved.