ugh.book

(singke) #1

64 Mail



  1. Sendmail had to be reliable, never losing a mail message.

  2. Existing software had to do the actual message delivery if at all
    possible.

  3. Sendmail had to work in both simple and extremely complex
    environments.

  4. Sendmail’s configuration could not be compiled into the program,
    but had to be read at startup.

  5. Sendmail had to let various groups maintain their own mailing lists
    and let individuals specify their own mail forwarding, without
    having individuals or groups modify the system alias file.

  6. Each user had to be able to specify that a program should be
    executed to process incoming mail (so that users could run
    “vacation” programs).

  7. Network traffic had to be minimized by batching addresses to a
    single host when at all possible.


(An unstated goal in Allman’s 1983 paper was that sendmail also had to
implement the ARPANET’s nascent SMTP (Simple Mail Transport Proto-
col) in order to satisfy the generals who were funding Unix development at
Berkeley.)

Sendmail was built while the Internet mail handling systems were in flux.
As a result, it had to be programmable so that it could handle any possible
changes in the standards. Delve into the mysteries of sendmail’s unread-
able sendmail.cf files and you’ll discover ways of rewiring sendmail’s
insides so that “@#$@$^%<<<@#) at @$%#^!” is a valid e-mail address.
That was great in 1985. In 1994, the Internet mail standards have been
decided upon and such flexibility is no longer needed. Nevertheless, all of
sendmail’s rope is still there, ready to make a hangman’s knot, should any-
one have a sudden urge.

Sendmail is one of those clever programs that performs a variety of differ-
ent functions depending on what name you use to invoke it. Sometimes it’s
the good ol’ sendmail; other times it is the mail queue viewing program or
the aliases database-builder. “Sendmail Revisited” admits that bundling so
much functionality into a single program was probably a mistake: certainly
the SMTP server, mail queue handler, and alias database management sys-
tem should have been handled by different programs (no doubt carrying
through on the Unix “tools” philosophy). Instead we have sendmail, which
continues to grow beyond all expectations.
Free download pdf