[ih] SMTP History

Jack Haverty jack at 3kitty.org
Mon Mar 28 14:07:04 PDT 2022


On 3/28/22 10:30, Dave Crocker via Internet-history wrote:
> 4. In  the very early 1970s, the Arpanet FTP protocol -- which has 
> mostly transferred to the Internet environment -- was under 
> development.  I only went to its final meeting and don't remember 
> whether email was in the version; from the RFC publication history, it 
> appears not. However Abhay Bhushan, who was the document editor, some 
> years ago told me it was always planned.

Much of the history of that early research has been lost in email 
exchanges which were apparently never archived.  Here's what I remember, 
perhaps clouded a bit by 50 years of elapsed time.   Lots of other 
people were involved too, so this is only what I personally can recall.

-----------------------------------

Abhay Bhushan's office was a few doors down the hall from mine while we 
were in Licklider's group at MIT.   I was working on "messaging", which 
was part of Lick's vision of office automation, which included more than 
just email - e.g., things like workflow of documents, approval processes 
for releasing documents, functions such as notarization, escrow (proof 
of sending), etc.   Abhay was working on FTP; we had a lot of 
discussions/arguments about how to get the "higher level" mechanisms of 
Lick's vision supported by the mechanisms of FTP.

There are artifacts in the RFCs capturing some of the early work. FTP 
began circa 1971 with RFC172.  At the same time, there was discussion of 
a "Mail Box Protocol" intended to enable functions like remote printing 
as a way of sending something to someone else over the ARPANET.   You 
just send it to their printer.   See RFCs 196, 221.

At first, FTP added a "MAIL <user>" command, which each machine 
receiving such MAIL could process as it saw fit.  Print it out.   Put it 
in a file somewhere.  Tell the <user> that mail is waiting.   Whatever...

Human users could send mail by simply opening an FTP connection to their 
addressee's computer, issuing a MAIL <user> command, and typing their 
message, indicating the end by a line containing just a period.  No 
"mail software" was needed, although people started building such things 
to send and receive mail on behalf of their users.   Such software 
especially solved the problem of a user wanting to send mail to another 
user, but the destination host was down at the time, which wasn't 
uncommon.   So a local "mail daemon" could keep the outgoing mail and 
periodically try to send it as needed.   I wrote one; so did lots of 
other people.

FTP was upgraded in late 1971, to include the command "MLFL".   RFCs 265 
and 278 show some of the details of how that worked.   I recall at the 
time badgering Abhay about the problems I was having with the "MAIL" 
command, and its use of <CR>.<CR> as an end-of-message indicator, which 
meant that every message had to be scanned before transmission to avoid 
premature end-of-message if the message's author happened to include 
that sequence in the message text.   I think he got tired of my 
complaining and put in the MLFL command which solved my <CR>.<CR> problem.

Ray's introduction of the @ convention was really a private protocol 
that only worked if both participants used the TENEX software.   It was 
more of a user-interface convention on how to format users' addresses in 
the <user>@<host> pattern, which would then be used by the TENEX Cpynet 
mechanisms.  So it provided email across the ARPANET, but only between 
consenting TENEX machines.   Other people (like me, Ken Pogran on 
Multics, Ken Harrenstien on MIT-AI, etc.)  used FTP to transfer 
"messages" from one machine to another across the ARPANET.

Using FTP's mechanisms, the sender would specify the target of a message 
by issuing the command "MAIL <user>" after establishing a connection to 
the proper destination host.   If the recipient server recognized the 
<user>, it would receive the message and put it where the <user> could 
see it - e.g., appending to a file in the user's home directory such as 
"DSK:JFH;JFH MAIL" (on my ITS system).   There was no particular 
standardization and various problems surfaced.  E.g., Multics was 
especially reluctant to allow processes receiving something from 
somewhere via the ARPANET to write into a user's file space without 
first logging in as that user.

Such messages didn't have any particular format.   It was just whatever 
text the sender submitted.   There were no "headers" unless the human 
created them.  It became popular to put some lines at the beginning of 
the message containing useful information, like who the message was 
from, when it was sent, etc.   There was no standard format for that, 
and people got very creative, which caused havoc in any program that 
tried to understand that information.     "User at Host" was popular, as 
well as Ray's "User at Host".   But creativity could result in headers such 
as "From the nimble fingers of Bill Smith at the Center of The Universe 
known as Host 987 on the ARPANET".   Just try writing software to 
understand such stuff!  I did, with the computer power of 50 years ago.  
Not good.....

RFC 475 describes how mail was handled in the 1973 timeframe, and 
suggests more additions to the FTP protocol to permit such "metadata" as 
the identity of the sender to be conveyed as part of the FTP protocol.   
There was also a *lot* of discussion on a mailing list called 
"HEADER-PEOPLE" (@MIT-AI IIRC, started by Ken Harrenstien) about how to 
define email headers that would be included at the beginning of each 
message, as an alternative to putting them into the FTP protocol.

At least two camps emerged in that discussion.  I was in the "Office 
Automation" camp, following Lick's vision, which motivated providing 
headers which could contain a lot of different kinds of such metadata 
about a message, but were very precisely defined to make them more 
easily readable by programs on the ends of the message transfers.   The 
other camp was interested in getting something workable and easy to 
implement, which was understandable since their "real work" was 
something other than implementing elaborate email systems.

The "elaborate" scheme was loosely called "MTP" for Message Transmission 
Protocol".   I documented one proposed format for the associated data 
transfer component called MSDTP - Message Services Data Transmission 
Protocol" in RFC 713.

MTP would be powerful but necessarily somewhat complex to implement, so 
an interim solution was developed to provide a much simpler initial step 
- the Simple Message Transmission Protocol, or SMTP.

All hosts had to implement SMTP in order to participate in email on the 
ARPANET, which was rather important since that's how ARPA insisted on 
interacting with its contractors.   So it was straightforward for 
everyone to find the time to implement SMTP.

MTP was only of interest to groups working on the broader realm of 
"Office Automation", but it did live on to some extent in projects such 
as the MME (Military Message Experiment), where the "office automation" 
aspects were pursued in the context of a military command and control 
"office".  There's a summary of MME in 
https://apps.dtic.mil/sti/pdfs/ADA098187.pdf   -- which illustrates some 
of the complex functionality of such "office automation" technology.   
Quite less "simple" than SMTP.

That's what I remember, IIRC of course.   I'm still waiting for MTP.......

Jack Haverty




More information about the Internet-history mailing list