History
Why the @ of all characters
The choice of separator is the most-told anecdote in the history of email — and the most often mis-told. It was not a flash of inspiration but a process of elimination.
The problem
An address had to combine two pieces of information: who, and on which machine. That called for a character in between, and the character had to satisfy one condition that outweighed everything else: it must never occur in a username.
Otherwise the address could not be taken apart unambiguously. A separator that can also appear inside the parts separates nothing — it merely moves the problem.
The process of elimination
The keyboards of the teleprinters and terminals of the day did not offer many candidates. Letters and digits were out, because they occur in names. So were the full stop, the hyphen and the underscore. Most of the remaining special characters already meant something in operating systems or programming languages, and were at least conceivable inside a name.
The @ was left over because computers simply had no use for it. It was a
commercial symbol from typesetting — "at the price of" — and therefore exactly what was
wanted: present on the keyboard, meaningless to the system, impossible in a username.
That it also reads as "at" in English, making the address literally mean "person at machine", is a happy extra. It is often told as the actual reason. The actual reason was availability.
The lesson recurs throughout protocol history: separators are chosen not for what they mean but for what they do not mean. A good separator is one that cannot occur in the content.
What the character cost later
The decision was ideal for its purpose and still had consequences nobody could foresee. On non-English keyboards the character was awkward to reach for decades, and sat on different key combinations depending on the country. In character sets that predate worldwide unification it occupied, in some places, a code point that stood elsewhere for an accented letter — which meant addresses were mangled when passed between systems.
None of that was a flaw in the choice. It is the usual experience with long-lived decisions: they are made under conditions that later cease to hold, and only in hindsight do you see which assumption was baked in. Here it was the assumption that everyone involved uses the same keyboard and the same character set.
A footnote on mailv2
Anyone designing an address format today faces the same process of elimination — with
one additional condition: the new format has to be distinguishable from an email
address at a glance, so that nobody mistakes one for the other. A doubled
@@ satisfies both. It occurs in no valid email address, and it is
recognisable as intent rather than as a typo.