History
The sendmail program was originally written by
Eric Allman while he was a student and staff member at the University
of California at Berkeley. At the time, one campus machine
(Ingres) was connected to the ARPAnet and was
home to the INGRES project where Eric was working. Another machine
(Ernie CoVax) was home to the Berkeley Unix
project and had recently started using the Unix to Unix Communication
Protocol (UUCP). These machines (as well as several others on campus)
were connected via a low-cost network built by Eric Schmidt, called
BerkNet. Software existed to move mail within ARPAnet, within UUCP,
and within BerkNet, but none yet existed to move mail between these
three networks.
A sudden
increase in protocol types, coupled with the anticipation of an
explosion in the number of networks, motivated Eric Allman to write
delivermail—the precursor to
sendmail. The delivermail
program was shipped in 1979 with 4.0 and 4.1 BSD Unix. Unfortunately,
delivermail was not flexible enough to handle
the changes in mail-routing requirements that actually occurred.
Perhaps its greatest weakness was that its configuration was compiled
in.
In 1980, ARPAnet began converting from
Network Control Protocol (NCP) to Transmission Control Protocol
(TCP). This change increased the number of possible hosts from 256 to
more than 1 billion. Another change converted from a
"flat" host-name space (such as
MIT-XX) into a hierarchical namespace (such as XX.MIT.EDU). Prior to
these changes, mail was transported using the File Transfer Protocol
(FTP). Afterward, a new protocol was developed for transporting mail
called Simple Mail Transfer Protocol (SMTP). These developments were
not instantaneous. Some networks continued to run NCP years after
most others switched to TCP. And SMTP underwent many revisions before
finally settling into its present form.
Responding to these and other changes, Eric evolved
delivermail into sendmail.
To ensure that messages transferred between networks would obey the
conventions required by those networks, Eric took a
"liberal" approach—modifying
address information to conform rather than rejecting it. At the time,
for example, UUCP mail often had no headers, so
sendmail had to create them from scratch.
The first sendmail program was shipped with 4.1c
BSD (the first version of Berkeley Unix to include TCP/IP). From that
first release to the present, Eric has continued to
enhance sendmail, first at UC Berkeley, then at
Britton Lee, then back at UC Berkeley, then with InReference Inc.,
and now with Sendmail, Inc. The current major version of
sendmail is V8, a major rewrite that includes
many bug fixes and significant enhancements.
But Eric wasn't the only one working on
sendmail. In 1987, Lennart Lovstrand of the
University of Linköping, Sweden, developed the IDA
enhancements to BSD sendmail Version 5. IDA
(which stands for Institutionen för Datavetenskap)
injected a number of improvements into sendmail
(such as support for dbm files and separate
rewriting of headers and envelopes) and fixed a number of bugs. As
the '90s approached, two offspring of IDA appeared.
Neil Rickert (Northern Illinois University)
and Paul Pomes (The University of Illinois) took over maintenance of
IDA sendmail. With contributions from around the
world, their version (UIUC IDA) represents a continuation of the work
begun by Lennart Lovstrand. Neil focused on fixing and enhancing the
configuration files into their current m4-based
form. Paul maintained the code, continually adding enhancements and
fixing bugs. In general, their version was large, ambitious, and
highly portable. It succeeded in solving many complex mail-routing
problems.
A variation on IDA
sendmail was also developed by Paul Vixie (while
at Digital Equipment Corporation). Called KJS (for King James
sendmail), it was a more conservative outgrowth
of Lennart Lovstrand's last IDA release. The focus
of KJS was on code improvement rather than changes to configuration
files.
In addition to these major offshoots, many vendors modified
sendmail to suit their needs. Sun Microsystems
made many modifications and enhancements to
sendmail, including support for
nis and nisplus maps.
Hewlett-Packard also contributed many fine enhancements, including
8BITMIME support.
This explosion of sendmail versions led to a
great deal of confusion. Solutions to problems that work for one
version of sendmail failed miserably for
another. Even worse, configuration files were not portable, and some
features could not be shared.
In 1992, Eric started creating a new version of
sendmail to merge all the earlier versions. V8
officially adopted most of the good features from IDA, KJS, Sun, and
HP's sendmail, and kept abreast
of the latest standards from the Internet Engineering Task Force
(IETF). In 1996, Eric began work on V8.8
sendmail. This release continued the trend begun
with V8.7, adding many requested new features and options, and
tightening security. In 1998, V8.9 was released, continuing the
direction started by V8.8.
In 1999,
Sendmail, Inc. was founded in Emeryville, California. Sendmail, Inc.
took over maintenance and development of the open source version of
sendmail, and began work on a commercial
version. Sendmail, Inc. has the web site:
- http://www.sendmail.com
and is also one of the sponsors of the open source
sendmail's web site:
- http://www.sendmail.org
For more information on the open source community and the Open Source
Initiative (OSI), go to:
- http://www.opensource.org
The first major offering from Sendmail, Inc. was
V8.10
sendmail, released in 2000. It was mentored by
Eric Allman, but largely written by Greg Shapiro.
V8.10 and
V8.11 were developed in parallel. Claus Assmann added to V8.10 SMTP
AUTH and STARTTLS, as well as a number of security changes, bringing
that version up to V8.11. V8.11 was released as a commercial version
because of export restrictions. Shortly afterward, export
restrictions were relaxed and V8.11 was released in open source form.
Claus Assmann took sendmail in a somewhat new
direction with V8.12, in which he added a suite of new features.
V8.12 was supposed to be the last of the V8 series of
sendmail, but a V8.13 and perhaps a V8.14 are
possible.
Plans are afoot to develop a multithreaded version of
sendmail that will be called V9
sendmail, but, as of this writing, it is still
in the early planning stages, and probably won't
appear as an alpha release for a few years.
|