Marshall Rose on Sendmail
This is a quote from the last chapter of Marshall Rose's book "The Internet
Message". He is discussing the problems with the X.400 addressing scheme
and the ISO standards process.
However, the Internet community is also not without blame. Perhaps the most common used implementation of a message transfer agent in the Internet is sendmail. It is a tribute to the Internet mail system that it works so well given that sendmail behaves so poorly. To understand sendmail one must really view it more as a mail gateway than a message transfer agent. Consider, although it performs the relaying function as an MTA, sendmail re-writes the headers of each and every message it encounters. If a message lacks a Date: or Message-ID:, sendmail will add them. Unfortunately, sendmail doesn't understand RFC-822 very well, which, when combined with its re-writing behaviour, makes for an absolutely deadly combination.
For example, sendmail doesn't understand that a message needn't have any address fields; i.e. a message could use the addressing group construct or an empty Bcc: header. But sendmail thinks it knows better. Hence, when it encounters the address grouping construct, e.g.,
To: Reviewers: ;
re-writes this as
To: Reviewers:;@local-domain
Similarly, if it finds only an empty Bcc: header, sendmail dutifully adds an Apparently-To: header containing the addresses from the envelope, thereby nullifying the originator's intent.
Even ignoring these violations of protocol, sendmail is still a lousy message transfer agent. For example, when sending a message to multiple recipients, sendmail usually manages to open a new SMTP connection for each recipient, thereby managing to transmit the message once for each recipient, even if multiple recipients are served by the same SMTP server.
Clearly sendmail is an excellent example of how to do a lot of things wrong. But since sendmail is shipped with Berkeley UNIX most sites just put up with it. The irony is that there is a competing competent implementation, in the Multi-channel Memo Distribution Facility (MMDF). Although MMDF is much closer toward being a correct implementation of a message transfer agent for Internet mail, it suffers from a tyranny of complexity. The sendmail package provides a single program and configuration. In contrast, MMDF consists of over a dozen programs and several configuration files. As such, one has to be really motivated to want electronic mail to work to understand how to generate, install, and configure MMDF. In contrast, people just sort of stumble along with a canned sendmail configuration, poking at it from time to time if problems arise.
Home > Support > Tech Tips > PMDF > Technical Notes
