![]() |
|
|
Electronic mail has been around for a long time. The oldest of the current standards were defined in the early 80s, and they replaced even older standards. Here's an overview of the current standards (thanks to Ruth Moulton for valuable input):
RFC 2822 defines the basic format of a mail message. It defines the headers (To:, Cc:, Subject: and so on) and a simple body made up of US-ASCII text, the message itself. This was fine for when it was written, but it can't handle the more complex formats used nowdays, such as images, binary files or embedded messages. It also can't handle non-US character sets, which causes problems in particular in countries like Russia, Israel and Japan.
RFC 2045, RFC 2046, RFC 2047, RFC 2048 and RFC 2049 together describe the Multipurpose Internet Mail Extensions, better known as MIME. They define how to encode non US-ASCII text and attachments so that they can be represented in ASCII and hence sent by RFC 2822, and also how to divide the single RFC 2822 body into multiple parts using ASCII separators.
MIME is one area in which UNIX is weak. Many UNIX users consider themselves Real Men who don't need these fancy toys. This is a pity, of course. In countries like Germany, people can get by with ASCII, but that won't work in Japan, Israel or Russia.
In case you're wondering, German has seven special characters Ä, Ö, Ü, ä, ö, ü and ß. ß is lower case only. There is a national standard defining how to represent these characters in US-ASCII: replace the characters with Ae, Oe, Ue, ae, oe, ue and ss respectively.
There are plenty of good MIME-aware mail readers available for UNIX. It's a good idea to use one. I recommend mutt. On the other hand, if your target audience typically does not use MIME-aware mailers, you should probably avoid sending MIME messages.
RFC 2646 describes the most common mail format, text/plain, and how to use it correctly. In summary: restrict lines to less than 80 characters. If you have to write one line per paragraph, ensure that the message goes out with the attribute format=flowed in the Content-type: header. Even then, lines should not exceed 79 characters, and paragraphs should be separated by blank lines.
Greg's home page | Greg's diary | Greg's photos | Copyright |