[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. An Introduction to Electronic Mail

Electronic mail (often known as e-mail, or simply mail), is the exchange of messages between people using computer networks. In this manual, when we say mail, we mean electronic mail. A mail message is a message which has been or will be sent via electronic mail. Again, when we say message in this manual, we are referring to a mail message.

When a mail message is sent, it is transmitted from one computer to another until it reaches the correct one. A message can be addressed to more than one person, in which case a separate copy of the message is sent to each person. Once a message has reached the machine to which it was addressed, then it is usually stored in the incoming mailbox of the person it is addressed to.

An incoming mailbox, or mailbox is simply a file containing mail messages, with a special sequence of characters separating each message from the others. Each user of a system will normally have their own mailbox. Users can also store messages in files of their own, which are called folders. In this manual, the term folder will refer to any file which contains mail messages.

To read your mail, you will usually use a mail reader, a program which can understand the format of a folder and present the contents to you in a convenient form. Af is an example of a mail reader. Similarly, you would normally send mail by using a mail composer, a program which knows how to construct and send a mail message, and gives the user a convenient environment in which to compose and send their message. Most mail readers, including af, are also mail composers.

To allow a mail message to be sent to the correct person, it needs an envelope. To supply this, a mail message is divided up into two parts, the headers and the body. The headers supply the information required to send the message to the right people, while the body is the actual message you wanted to send.

1.1 Mail Headers  What the headers look like and mean.
1.2 Mail Addresses  How to interpret a mail address.
1.3 The Message Body  The contents of the message body.
1.4 Signatures  How to automatically sign a message.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 Mail Headers

The headers of a mail message are held at the beginning of the message, and are separated from the message body by a blank line. Here's an example of message headers:

From malc@thing.demon.co.uk Tue Jan 23 16:20:39 1996
Date: Tue, 23 Jan 1996 16:20:36 GMT
Message-Id: <4780.199201201539@thing.demon.co.uk>
From: Malc Arnold <malc@thing.demon.co.uk>
Organization: Team Limpid
Sender: The Management <root@thing.demon.co.uk>
To: Kay Dekker <kay@thing.demon.co.uk>,
    Andrew Fry <vic@pootug.demon.co.uk>
Subject: Af manual in progress
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Note that apart from the first line, each header consists of a header name, followed by a colon and then the header text. The first line is not really a header at all; it is the marker that most Unix systems insert to mark the start of each new message. You can also see that unlike the envelope for a postal letter, the envelope information contained in the header can also be of interest to the recipient. There are actually several other headers contained in most mail messages, but by default af will filter them out when it displays a message for you to read (see section 5.1 Reading Messages).

Another interesting feature is the `To:' header, which has been extended over two lines by starting the second line with a tab. You can also continue headers in the same way by starting the following line with a space. Probably it's best to try to keep headers to a single line though; if a long header line needs to be folded like this, then af will normally do so for you.

Here is a brief summary of some of the headers you are likely to see in a mail message.

The e-mail address of the person who the mail is from. Replies to the message will be sent to this address (see section 8. Composing and Sending Mail). It is possible for a message to be from more than one person.
The organisation the sender belongs to.
A brief description of what the message is about.
The e-mail addresses of the message's primary recipients.
A "carbon copy" of the message was sent to the addresses listed. People listed in the `Cc:' header should regard the mail as being a copy for informational purposes.
Indicates that the message is a MIME message. See section 1.3 The Message Body.
What type of data the message contains. See section 1.3.2 Content Type.
How the data has been encoded for transport via mail. See section 1.3.4 Transfer Encoding.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 Mail Addresses

Mail addresses usually take the form `user@full.domain.name'. They may also be written as `Full Name <user@full.domain.name>', or `user@full.domain.name (Full Name)'. In all of these cases, the address of the user is the same; the addition of the full name is simply a convenience to allow mail readers to display the person's full name rather then their e-mail address.

Usually, the part of the address to the left of the "@" character (`user') identifies the user to which the mail is to be sent, while the part to the right (`full.domain.name') identifies the specific computer or organisation where that user can be found. Note that while mail addresses must be unique, a user name may be duplicated many times by different organisations; each with a different full domain name.

Lists of addresses (such as in a `To:' header) should be separated either by spaces or commas.

We shall not go into the intimate details of mail address syntax here; af will check any addresses you give it, and either correct minor problems or report any serious errors in an address.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 The Message Body

Normally, the body of a mail message is just text, which is not handled in any special way. Recently, electronic mail has been extended to allow for a message body which is something other than text. These extensions are called MIME (Multipurpose Internet Mail Enhancements), and mail which makes use of them is called MIME mail.

A MIME message uses the `Content-Type:' header to define the type of data the message contains. The `Content-Transfer-Encoding:' header describes how the data was encoded in order to be sent via mail. The `Content-Disposition:' header describes how a message should be handled when read. Finally the `Content-Description:' header can be used to describe the contents of a message.

1.3.1 Body Parts  Message bodies may contain body parts.
1.3.2 Content Type  How the type of a message is specified.
1.3.3 Character Sets  Text can be written in different character sets.
1.3.4 Transfer Encoding  Encoding message bodies.
1.3.5 Content Disposition  Hints for the recipient's mail reader.
1.3.6 Content Description  Describing the content of a message.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.1 Body Parts

A MIME message body may consist of more than one part. Each of these body parts is like a miniature MIME message in its own right, and has its own headers specifying the MIME details.

For example, a message might contain two body parts. The first is a description of the work you've been doing; the second is an image displaying the results of that work. You can see that the two parts of the message are related, but they must go into different body parts since they contain a different type of data.

Since we can think of a normal message as having one body part, when describing MIME mail it is conventional to talk about body parts rather than the message body. We will follow this convention in this manual.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.2 Content Type

The body of a MIME mail message may be textual, or it may be an image or some other non-textual material. The type of the message body is specified by the `Content-Type:' header.

The form of a `Content-Type:' header is something like:

Content-Type: type/subtype [; parameter=value ... ]

The main type is separated from a subtype by a slash. The content type may be further refined by parameters, which are separated from the type and subtype, and from each other, by semicolons.

The content types you are likely to see in mail messages are:

The message body consists of a set of body parts. The `mixed' subtype indicates that the body parts may contain any content type. The `digest' subtype indicates that each body part is an entire mail message, which may itself be in MIME format. The `alternative' subtype indicates that each body part contains a different form of the same data, and only the "best" should be displayed. The `parallel' subtype indicates that the body parts should be displayed simultaneously if possible. Af can handle multipart messages internally.
The body part is itself a MIME message. The `rfc822' subtype indicates that the body part is an entire MIME message. Af is capable of handling such encapsulated messages internally.

The `partial' subtype indicates that the original message has been split into a number of smaller messages, presumably to avoid limits on the size of mail messages. Af can rebuild the original message from such partial messages, if all the parts of the original message have arrived intact.

The body part is textual. Although it may contain formatting information, it should be readable as it stands. The `plain' subtype means there is no formatting information; the text should be displayed as it stands.

The `charset' parameter indicates the character set the text is written in. Common values are `us-ascii' for plain ASCII text, and `iso-8859-1', which is suitable for Western European languages. See section 1.3.3 Character Sets.

The body part is an image, in a format specified by the subtype, such as `image/gif' or `image/jpeg'. Af will call an external program to display `image' body parts.
The body part is audio data, in a format specified by the subtype. Af will call an external program to display `audio' body parts.
The body part is video data, in a format specified by the subtype. Af will call an external program to display `video' body parts.
The body part is raw data for some application, often specified by the subtype. One common value is `application/octet-stream', which indicates that the body part contains raw data with no meaning attached. Hopefully the context will make it clear what you are to do with the data. Af will call an external program to display `application' body parts.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.3 Character Sets

One of the commonest uses of MIME (in Europe at least) is to send mail which contains international characters (such as accents, or Cyrillic characters) which aren't in the us-ascii character set.

To allow these characters in a message, textual MIME messages can specify which character set they are written in with a `charset' parameter. The character set may be either `us-ascii' (the default), or one of the `iso-8859' character sets.

If your display is capable of displaying these character sets properly, Af can be set up so that it display's such messages properly by setting the variable viewable-charsets (see section 21.4 Variables).

The person who installed af at your site may have already configured it to handle messages in the available character sets. In this case you don't need to do anything to make af handle internationalised messages correctly.

Sadly, none of these character sets is capable of displaying all the characters used in all the world's languages. So you may sometimes receive textual messages which you cannot read. The ISO-8859-1 character set, which is suitable for most Western European languages, is by far the most common character set used in MIME mail.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.4 Transfer Encoding

Traditionally, the body of a mail message had to contain only plain text consisting of only ASCII characters, and much of the infrastructure which supports mail is only capable of transmitting such messages. For this reason, it may have been necessary to encode the contents of the message before they were send via mail. This encoding is specified by the `Content-Transfer-Encoding:' header.

The encodings that you may encounter in a MIME body part are:

The body part contains only short lines of 7 bit ASCII characters. No encoding has been applied.
The body part contains only short lines of 8 bit characters, not including the null character ASCII NUL. No encoding has been applied.
The body part contains binary data, but has not been encoded. The electronic mail infrastructure is such that this encoding is unlikely to work.
The body part has been encoded with the `quoted-printable' encoding. This encoding leaves ASCII characters untouched, but replaces international characters with sequences beginning with `='. It is intended for encoding text, since many characters will still be readable without decoding the message.
The body part has been encoded with the `base64' encoding. This renders the body part completely unreadable, but is more compact than `quoted-printable' if the message contains a high proportion of non-ASCII characters. It is suitable for encoding binary data, such as images.
These encodings are not part of MIME at all. They represent the Unix `uuencode' encoding, which predates MIME. Some people send messages marked in this format, and af is able to handle them. These encodings are similar to `base64', but is not as robust. It is a bad idea to send messages encoded in this way except by prior arrangement with the recipient.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.5 Content Disposition

Sometimes a body part isn't primarily intended to be read. It might be a program source file, or a configuration file. The `Content-Disposition:' header specifies whether a body part should be displayed inline when the message is read, or that it is an attachment, which requires confirmation before it is displayed.

You can also specify a file name in the `Content-Disposition:' header. Again, this is a hint to the recipient's mail reader that the body part should be stored in the named file if it is saved.

The form of a `Content-Disposition:' header is something like:

Content-Disposition: disposition [; filename=file ... ]

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3.6 Content Description

Sometimes it can be useful to the recipient to have a textual description of a body part, especially if the body part contains something other than text. The `Content-Description:' header contains just that; a free text description of the contents of a body part.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 Signatures

It is common for people to want to include a small amount of text at the end of each message, to give information such as their telephone number, paper-mail ("snail-mail") address, other e-mail addresses. and so on.

To aid people in doing this, af supports a feature known as signature files. These files contain text which will automagically be included at the end of each mail message you send. By default, af's uses the file .signature in your home directory as your signature file.

Some people also like to include lengthy quotations, large ASCII graphics or other amusements in signature files. This annoys many people on the net, since it costs money to transfer large signatures, and conveys no useful information. Because of this, the version of af which you use may be configured to truncate signature files that are larger than a certain size; typically 4 lines of 79 columns each. You have been warned.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Malc Arnold on August, 22 2002 using texi2html