previous next contents

A Brief History of Mail


E-Mail was born in the decade before the ARPANET, by users on time sharing systems who wished to leave messages for one another. The earliest e-mail systems were fairly primitive affairs; each user's mailbox was a simple file, readable only by that user, to which a mail program would append messages. There were no mail reader programs, users simply waded through the raw text of their mailboxes, and so large mailboxes quickly became chaotic. The first of these systems was MAILBOX, and it was installed on the Compatible Time Sharing System, at MIT. Although comparatively crude, mail was so useful that it proliferated quickly.

The geographical reach of the ARPANET added the next piece to the e-mail puzzle. The first e-mail delivery to occur between two networked machines occurred in 1972. Ray Tomlinson, then an engineer at BBN delivered a mail message by using some inventive hacking to copy a mail message across a network link connecting two DEC PDP-10's. It was Ray Tomlinson, who, looking down at his keyboard, decided to use the '@' symbol to separate the user from the host part of an e-mail address.

By early 1973, three-quarters of the traffic on the ARPANET was e-mail. There were no mail specific protocols in place then - mail was piggybacked over FTP, which had commands specific to mail transfer. Mail delivery and tracking information (and pretty much everything else) was included in the mail headers, and one of the major problems with mail transfer was that there were no defined header standards. Mail programs that disagreed over formats would often refuse to talk to one another. For example, the famous '@' symbol was used as a line kill command on Multics systems, and Multics users tended to be somewhat 'mail-challenged' as a result of this...

The first major attempt to standardize mail headers resulted in RFC 680, which cleared up some of the chaos surrounding mail at the time. In 1977, RFC 680 was succeeded by RFC 724, which was greeted with a lukewarm reception from the ARPANET community. RFC 724 was revised soon after, and became RFC 733, but this still did little to stem the arguments surrounding mail header formats.

At the time of most of these events, TCP/IP had not yet appeared. The ARPANET used NCP as its core network protocol, and was utterly unable to communicate with any of the other packet networks in existence at the time. Into this environment, Eric Allman released delivermail, the ancestor of sendmail. Delivermail dealt with ARPANET mail using FTP over NCP, and its configuration was compiled into the program. The first version of delivermail shipped with 4.0 and 4.1 BSD in 1979.

As these events were taking place, Vint Cerf and Bob Kahn were working on a method to connect together the many packet networks in existence. Their idea, which was started around 1973 was to create a "network of networks", and the results of their work would become the TCP/IP protocol suite. The ARPANET made its official transition to TCP/IP in 1982. The widespread implementation of TCP/IP paved the way for the removal of mail services from the FTP protocol, and the creation of a new protocol : SMTP. Shortly after this, in 1986, the widespread adoption of DNS as a replacement for the old HOSTS file provided a way to extend the functionality of e-mail systems.

In response to the new SMTP protocol, and the functionality provided by DNS, Eric Allman evolved his delivermail program into sendmail. The first public version of sendmail shipped with 4.1c BSD. The new protocols extended sendmail's reach beyond the ARPANET, onto the many other packet networks comprising the nascent Internet.

Eric Allman stopped the development of sendmail in 1982, and did not go back to it until 1990. In 1998, Sendmail Inc. was formed, to create a commercial version of sendmail. Profits from the sale of this version would allow Allman to give sendmail the time it required, and the core distribution would remain free, allowing everyone to benefit from the new code. At the time of writing, the latest version of Sendmail is 8.9.2.


previous next contents