Internet mail: formats

by Greg Lehey
Last update: 12 June 2002

Return to main Email page

The appearance of a mail message is the first thing that people notice, and it's one of the most important. It has a strong influence on the impression that you make on people you have never met. In this section, we'll look at the following topics:

Message layout

A lot of badly formatted messages come from bad mailers or badly configured mailers. The following mailers are known to send out badly formatted messages without you finding out about them:


cc:Mail
Eudora
exmh
Microsoft Exchange
Microsoft Internet Mail
Microsoft Outlook
Netscape

As you can see, the mailers in the Microsoft world are frequent offenders. If at all possible, use a UNIX mailer. If you can't, the following links make suggestions about how to set up Microsoft Outlook or Netscape Communicator.

Since Microsoft discovered the Internet, it has introduced a number of changes to mail formatting which contravene the standards. Apart from the fact that Microsoft mailers are non-standard, the changes are also bad. Let's look at some of the more common problems:

Using MIME attachments

MIME allows you to attach all sorts of data to a mail message, including images and sound clips. It's a great advantage, but unfortunately many people refuse to use it, perhaps because the UNIX community haven't got their act together. Credit where credit's due, this is one area where Microsoft is ahead of the UNIX crowd.

Nevertheless, you can do a lot of things wrong with MIME attachments. Here are some of the more common ones:

Correct time and time zone

When did you send your message? The answer is in the Date: header. Here are some typical examples:
Date: Wed, 11 Mar 98 11:29:05 CST
Date: Tue, 14 Apr 1998 18:56:18 -0400 (EDT)

The exact layout of this header is defined in RFC 2822, but most of the fields are relatively easy to understand. The time is in the 24 hour clock. But what about the field or fields after the time? They specify the Time Zone. Together they define the real time that you sent the message. These are more important than you may realize: if you're following a complicated exchange on a subject, it's very convenient to have the messages sorted in the order in which they were written, and most mail readers allow you to sort messages this way. If your time or your time zone is wrong, your messages will be sorted in the wrong place. This annoys many experienced mail users, and causes them to look down on you.

So this can't be too difficult, right? Well, no, but there are some hidden traps that you may not expect. Setting the time is easy: all mailers use the system time, so all you need to do is to set it correctly.

The time zone is more complicated. First, Microsoft systems don't use the concept of a time zone internally, so you could set it up wrong and not notice any problems. Secondly, the format of the time zone is somewhat bizarre: in this point, RFC 2822 shows its age.

You can specify the time zone as a character abbreviation (CST in the first example), or as a numeric offset from UTC, Universal Coordinated Time. UTC is very close to, but not identical to, Greenwich Mean Time, or GMT, the time in England in the Winter.

The first two digits of the offset specify the number of hours, the second two digits the number of minutes offset, so -0400 means ``four hours behind UTC''. +1030 means ``ten and a half hours ahead of UTC''. Just to make this more confusing, this is exactly the other way around from the convention that UNIX System V uses: System V considers EDT to be 4 hours ahead of UTC.

But what does CST mean? It stands for Central Standard Time, a time zone in the United States of America which is 6 hours behind UTC. It also stands for China Standard Time, which is 8 hours ahead of UTC. It also stands (again!) for Central Standard Time in Australia, which is 9½ hours ahead of UTC in the Winter, and 10½ hours ahead in the Summer.

So which does it really mean? The correct answer is: the US time zone. RFC 2822 allows only US time zone abbreviations. If you live in Adelaide or Alice Springs, Australia, or Lanzhou, China, your time zone is CST, but you must specify your time zone as +0930 (+1030 in the summer in Adelaide only) or +0800 respectively. You may put the time zone abbreviation in parentheses after the offset, like in the second example, but it is treated as a comment.

Where do you set your time zone? That depends on your operating system.