The Early Internet
(ignoring exceptions to the broad brush-stroke statements that are made throughout this page),
in the 1960s, computers were programmed in batch mode.
There was generally no on-line user base,
and no computer mail system.
Interactive computer operating systems
started to enter into common use,
in the universities and large companies.
The mail command was included in the operating system
to allow users to leave messages for colleagues who had an account on the same machine.
The computers themselves started being given mail accounts on neighbouring computers,
almost as if they were users on those machines.
A convention was established
in which the argument to the mail command
was only interpreted up to the first "!" character;
any characters after that would be passed on,
to be interpreted as the argument for the mail program on the neighbouring computer.
Thus "mail malcolm" would send a message to malcolm on the current machine,
and "mail ukc!malcolm" would send a message to ukc on the current machine,
which, as the account for a computer at the University of Kent at Canterbury,
would then take the rest of the argument, malcolm,
to route the message within its own user-base.
The process could then be cascaded indefinitely.
From UKC, instead of addressing the local user, malcolm, it was possible to address
the topologically neighbouring computer, mccvax, on the east coast of the United States,
where the rest of the argument could specify a user account on that machine,
or that of yet another interconnected computer,
In this way, a mail message could be routed around the world,
passing between successive links in the computer network,
all the way to its intended destination.
Topological maps, resembling complicated versions of the map of the London Underground,
were maintained as ASCII files that could be displayed on the screen,
or printed on the line-printer,
showing the connections between the main Internet computers in the world.
It was only necessary to trace out the intended route for the newly written mail message,
and to list the computers in sequence, separated by "!" characters.
The network was, thus, very informal, dynamic and de-centralised.
In effect, the very first Internet Service Providers were the universities
(along with organisations such as DARPA).
Email addresses became very long and cumbersome, though,
and could wrap over several lines,
and had to be precisely correct,
explicitly specifying each hop in the journey for the mail message.
They were thus prone to errors (of mistyping a computer name, or of mis-reading the map).
Luckily, the need for typing an address from scratch was minimised
by the "from" field being constructed automatically by the mail network,
for use by the "reply" command in the mail program:
at each hop through the network,
the current computer name was removed from the front of the argument in the "to" field,
and was concatenated to the front of the argument in the "from" field.
Similarly, the relative address was computed
in each of the articles
in the Usenet News system,
so that the user could just use a single "reply" command
to reply to the author of the article.
This notation, using so-called pling characters,
was replaced by the domain notation that is now in use,
in which it is only necessary to type in the user name and the computer
on which the destination account is to be found, "email@example.com".
Look-up tables are then consulted by the intervening computers in the network,
to work out, for themselves, how to route the message across to that server.
There was a transition period, though,
when both systems were in operation together.
For this, the "%" character was used instead of the "!" character,
but was scanned from right-to-left instead of left-to-right,
with the rightmost "%" first being turned into an "@".