Fifteen years earlier saw the publication of RFC 733, Standard for the format of ARPA network text messages. (The “ARPA network” was the forerunner of today’s Internet.) This established the rules that allowed computers to exchange e-mail, but the phrase “text messages” in the title of that RFC is telling. According to that standard, e-mail consisted solely of plain text, specifically text arranged in relatively short lines. Furthermore, the text could only be expressed with ASCII characters, that is, the fifty-two upper- and lowercase letters of the English alphabet, the ten digits, and thirty-odd typographical characters, and no others.
In those bad old days, you could not attach a picture or a spreadsheet and mail it to someone; you had to settle for letting your correspondent know from which directory on which FTP server they could download your file. You could not emphasize text with boldface or italics, you had to settle for emphasis that looked *like this*. And if you wanted to say something in Russian or Greek or Hebrew or Chinese or Thai, you had to transliterate it using English letters (“na zdorovia”). You couldn’t even include the accent in “Buenos días.”
By the early 1990’s, the need for these expanded abilities was starting to be felt, in part due to the burgeoning of the Internet, in part due to the ever-increasing storage and display capabilities of the computers attached thereto, and in part due to experiments such as the Andrew project, which I worked on with Nathaniel Borenstein and others. In the Andrew project, users running the appropriate software within a closed community (such as the Carnegie Mellon campus) could exchange rich e-mail with fancy text styles and a wide assortment of attachment types (or “insets” in Andrew parlance), including pictures, sound, and an inline “hyperlink” object (due to my friend Michael McInerny) that prefigured the invention of the World Wide Web.
As I say, users within a closed community could use Andrew and other systems like it, but they could not exchange “rich” mail with the Internet at large. There was no widely accepted standard for the format of such messages. The only widely accepted Internet mail format was RFC 822, which by this time had superseded but not meaningfully expanded upon RFC 733. Like its predecessor, it too insisted on treating e-mail as short lines of plain ASCII text, and across the Internet there was a huge installed base of RFC 822 e-mail systems. There was no possibility of replacing all those e-mail systems with anything that could handle other kinds of content. To complicate matters, the conformance of most e-mail systems to the rules in RFC 822 (and its companion, RFC 821, which dealt with the details of transporting RFC-822 data between computers) was only approximate in many cases. Cobbled together as they were by amateurs and academics, the mail systems of the early Internet often got things wrong.
All of which I mention in order to highlight the genius of Borenstein and Freed. With MIME they invented a collection of mechanisms for expressing and transporting all conceivable kinds of e-mail content, including text using foreign alphabets, that worked entirely within the rules of RFC 821 and RFC 822. By variously encoding, labeling, and encapsulating the many data objects in a rich e-mail message, they were able to make it look like a standards-compliant text message, consisting of short ASCII lines. They even managed to work around the many different ways in which most mail systems failed to obey the standards.
In this way, MIME messages could be exchanged across the Internet without the need for any of the existing mail software even to be aware that the messages were special. Of course, if you happened to have one of the handful of MIME-aware mail systems that existed at first, it would decode the message and display it richly, giving you the full benefit of MIME. But if your mail system was not MIME-aware, that was OK; your mail program would simply show you the un-decoded MIME content, which, thanks to more ingenious MIME mechanisms such as “the preamble,” “quoted-printable,” and “multipart/alternative,” was usually somewhat legible anyway.
Thus did MIME take over the e-mail infrastructure of the Internet in viral fashion. Immediately upon its introduction, it worked at least bearably for everyone, and terrifically for some. Of course everyone wanted it to work terrifically, so bit by bit, users across the Net upgraded their mail systems to be MIME-aware.
After I left Carnegie Mellon I went to work for Z-Code, which made e-mail software called Z-Mail. No sooner did I start there, trying to convey the wonders of the Andrew system to my new coworkers, than the MIME standard appeared, and Z-Code went to work making Z-Mail MIME-aware. Thus by Nathaniel’s efforts was my career not only begun but perpetuated. I write e-mail software professionally to this day.
Nowadays users think nothing of sending e-mail with pictures, spreadsheets, and even movies attached, and being unable to receive and view them properly is now the rare exception and not the rule. But the infrastructure is largely the same as it was in 1992. At bottom, e-mail messages are still arranged as short lines of ASCII text. Only MIME makes possible such wonders as Asian Viagra image spam.
One thought on “Fifteen years of MIME”
Though it amazes me to this day how many mail programs STILL get MIME stuff wrong (most often on the outgoing end).