A Brief Email History (or why MIME does what it does)

Internet Email RFCs: RFC 822, one of the oldest (dated 1982) and best-known Internet "Request for Comments," defines Internet email messages. It is available at: http://ds.internic.net/std/std11.txt
MIME, Multipurpose Internet Mail Extensions, is literally just that -- extensions to RFC 822. RFC 822's definition of Internet email was extended in RFC 1521 and 1522 in 1993: http://ds.internic.net/rfc/rfc1521.txt and: http://ds.internic.net/rfc/rfc1522.txt

MIME addresses three fundamental email problems:

First: how "human-readable" text is represented in email. Computers don't do letters or numbers or punctuation; computers represent each printed character with a numeric code. So the question is: what encoding of human-readable text -- what "character set" -- should be used in Internet email? The designers of Internet email made an obvious but unfortunate selection: US ASCII (American Standard Code for Information Interchange), which represents each letter or character by seven bits. (7 bits = 7 binary digits = a string of 7 0's and 1's)

And herein lies the problem: US ASCII's 7 bits can represent only 128 characters. 128 characters are perfectly sufficient for human-readable text written in English, but it's not "rich enough" for the types of files that programs read, nor, for that matter, for the accented letters and special characters used in other (human) languages.

Second: Internet email's unstructured body. People wanted to be able to use Internet email as a file transfer mechanism, and wanted a standard way for the sender to tell the receiver exactly what type of file was being sent. There also didn't seem to be any good reason to limit the message body to only one part. So MIME needed to provide facilities to include multiple body parts in a single message, and to define standard ways communicating exactly what type(s) of information the parts contain.

Third: limitations in Internet email transport. As long as Internet email was going to be short, human-readable messages, there wasn't any reason to expect that it would contain any extraordinarily long lines, so the Internet email transport protocol (SMTP -- Simple Mail Transport Protocol) includes limits on the line-length (1000 characters) and on the total size of email messages. Machine-readable files often exceed both of these limits. MIME also addresses this problem.

Why doesn't MIME use UUENCODE? UUENCODE (UNIX-to-UNIX encoding) was an early attempt to address the problem of sending rich text and machine-readable code by email. It isn't used in MIME both because it is not clearly defined and also because it doesn't do the job -- it's not immune to being corrupted by email gateways (special purpose machines used to move electronic mail from one type of network to another).


Other Links


Your Ad Here