On MTAs

What is a MTA?
MTA stands for Mail Transfer Agent. MTAs implement the control mechanisms to send to and receive mail message from the internet using SMTP (Simple Mail Transfer Protocol). MTAs are ususally not responsible for delivering mail to the user (MDA - mail delivery agent) or providing front ends to read and write mail (MUA - mail user agent).

Sendmail
First, there was sendmail, and it was fine.
Sendmail was the first mail transfer agent that has been used on a large scale at many sites in the internet. Sendmail provided a variety of interesting features at very early stage of its development. The costs system administrators had to pay to use these features were sendmails cryptic configuration file. Nowadays, some of the configuration has been detached to unitize the setup, but the central monilithic configuration file still remains, although few people edit it directly, but use powerful pre-defined macros. Apart from all the pros and cons, sendmail remains to be one of the most wide spread MTAs being used all over the world.

Smail
Being free software, too, smail has been created to provide an alternative to the quite complex sendmail. Smail uses a straight forward configuration file, which is much easier to understand and learn than sendmail's. However, the price for simplicity is a lack of certains features and the allover flexible design.

Exim
Exim is based on smail, the latter being regarded its predessor. Exim combines simple configuration interface with state-of-the-art powerful features, like regular expression lists, SMTP AUTH aso.

Qmail
Qmail was the first MTA to wield a complete different approach in regard of modular design. Not only did it implement the abstract layers and mechanisms of the delivery of a mail message into one process, but used several processes communicating and interacting with each other. Some of the processes even use different UIDs to make their respective tasks more transparent and to grant them exactly the rights they need. Qmail also introduced a new format to store mail messages - Maildir. Until now, MDAs used a single file to store the users' mail (usually /var/spool/mail/user). Qmail created one file for each new message, the access of which is much more efficiently than mbox files. Many other MTAs/MDAs adopted this format or, at least, support it optionally. Qmails user aliasing mechanism is also based on separate files for each alias and offers unequalled opportunities in regard of usability and extendability.

ZMailer
ZMailer implements an extremely flexible and configurable MTA in regard of customization. As most new generation mailers ZMailer, too, relies on several co-existing processes to provide best throughput when deciding what as to be done with mail messages (in ZMailer terms this decision is called "routing"). To perform its duty it supports a number of different database formats and network protocols. Among the latter are SMTP, UUCP, bitnet and mail-to-news-gateways.

Postfix
Postfix is another attempt to thwart sendmail's domination of MTA-field. It has been developed with speed, simplicity of configuration and security in mind. Postfix works great with Courier and Cyrus, both, with and without the SASL-extensions of the latter.

Last modified at 1999-10-10.