Home  |  Resources  |  FAQs  |  Free Webmail
 
 
 

Electronic Mail: The Basics

An ultra-condensed explanation of e-mail: a sender (person) uses a mail agent (program) to compose a message, which contains the e-mail addresses of several recipients. The agent passes the message to a transport service for delivery to the mailboxes of the recipients, who each use their own agents to read the e-mail.

The rest of this document expands this explanation in two successively finer levels of detail. The Terms section gives a bit more explanation of each role in the ultra-condensed explanation, and the remaining sections explain each step in more detail.


Terms

To understand electronic mail (e-mail), you need to learn a mental model that involves seven roles, that correspond roughly to similar roles for "regular" letters:

  • the sender: a person who composes and sends e-mail messages,
  • the mail agent, a program the sender uses to do so; for regular mail, this might be a pen or typewriter
  • the message, a computer representation of what the sender wanted to say. For regular mail this would be the paper and its envelope.
  • the mail transport subsystem: a system (that is, a complex collection of programs) that delivers the message; for regular mail, this would be the combined Postal Services, airlines, trucking companies, and so on, involved in delivery.
  • the recipient, a person who receives the mail
  • the recipient's mail agent, which might be a different program from the sender's; for regular mail, this might be a magnifying glass used to read the sender's tiny handwriting
  • the e-mail address, a text string used to identify senders and recipients; for regular mail, this would be the text for the usual street address, city, country, and so on.

There are a few more roles that show up in the details:

  • a server is a program constantly running on some internet site, waiting for other sites to send it requests to perform some service or other (like delivering mail).
  • a protocol is a particular collection of types of requests and responses understood by a particular kind of server. Thus Web servers follow HTTP, the Hyper Text Transfer Protocol.

Sending a Message

First the sender composes a message with the mail agent, then asks the mail agent to invoke the mail transport system to deliver the message.

Composing

Composing an e-mail message is much like composing any other kind of document; the mail agent usually behaves similarly to many other editors. The main complication is that messages have two parts:

  • The header, which more-or-less corresponds to the envelope of postal mail. It consists of a sequence of tagged header lines; tags are defined by an Internet standard, and include things like To, Subject, CC, and Date. Your mail agent will ask you to supply some of these (such as To), will fill in some by itself (e.g. From and Date), and will allow you to add others (like CC).
  • The body: the main part of your message, which corresponds more-or-less to the paper you put inside the envelope for postal mail. You can think of this as a simple text message with zero or more attachments; in fact the attachments are encoded as text via a protocol called MIME (Multipurpose Internet Mail Extensions)

While in the midst of composing, you may decide to stop and do something else. Some mail agents provide a 'draft' folder into which you can place partly-composed mail, which you can resume later.

Queuing and Sending

At some point you tell your mail agent to send the message you have just composed. The method for doing this varies with the mail agent. Agents with a graphical user interface (GUI), like NetScape Messenger, have a Send button or menu item. Text-based agents, like GNU Emacs RMAIL, have some special keyboard combination, like a pair of control-C characters (ASCII 003, typed twice).

At this point the mail agent may perform certain checks before sending your message -- the primary check being: did you supply sensible values for at least one recipient header field (primarily To and CC)? Once it is convinced it should actually send the message, it invokes the mail transport subsystem to deliver it.

Mail transport usually involves sending information over the Internet. The Internet is not always immediately available when you want to send mail; many personal computers use dialup lines to connect to the Internet, so are sometimes "off-line" while you are composing mail. Thus there may be a second queue somewhere, separate from the "draft" folder, where the mail agent or the mail transport system keeps mail that you've committed to send, but which hasn't actually been sent yet. If the mail agent keeps the queue, it might choose to make it visible through an "unsent messages" folder. If the mail transport system keeps the queue, it might be invisible to you unless your system provides some extra way to get at this information. On my UNIX system at work, for example, the mail transport subsystem keeps the queue, and I have no idea where it is.

Transport

Ideally, it would be nice to ignore what happens in between when you send a message and when the recipient reads it. Unfortunately, you can be faced with the consequences of failures of various kinds at the transport level, and thus need a basic understanding to have any hope of figuring out what is happening.

Addressing E-Mail

To tell the mail transport system where to send your message, you supply one or more addresses for recipients. An address is a text string of the form mailbox@site. The second part is a string identifying a particular site on the Internet; the first part is a string identifying a particular mailbox at that site.

Every Internet site has an Internet Protocol (IP) address, specified as four decimal numbers (each in the range 0-255) separated by dots. The transport service sends the site name string to a Domain Name Server (DNS), which translates the name into an IP address. The transport service then starts up an Internet connection to the given IP address, and asks the destination site to deliver mail to the given mailbox.

For this to work, the destination site has to be running a program called a mail server that is listening for requests to deliver mail. At this point the mail server can do one of several things

  • Accept the message and store it in the expected mailbox.
  • Forward the message somewhere else, usually to a place specified by the owner of the mailbox, but possibly to a mailing list.
  • Reject the message as undeliverable, either because the mailbox doesn't exist, or because the mailbox is full, or because the server is facing some temporary problem.

There is usually no good way to guess at someone's e-mail address, unless they tell you -- although there are some guidelines for finding addresses. Some sites let you look up domain names in their DNS with a Web form.

Mail Servers

There are basically two kinds of mail servers, distinguished by the protocol they expect you to use to communicate with them.

  • Basic Simple Mail Transfer Protocol (SMTP) delivery. The server translates the mailbox name into a local file name, and appends the message to the file. For example, on some UNIX system, mailbox XX might be stored in file /var/spool/XX. Mail agents on the server's site know to copy and truncate this file when receiving incoming mail.
  • Post Office Protocol (POP) delivery. The server still stores messages somewhere, in a place derived from the mailbox name. However, it allows mail-receiving connections from other Internet sites. The mail agent on the recipient's site knows to open an Internet connection to the POP server, request contents of particular messages, and (optionally) remove messages from the server's mailbox.

POP service is newer than SMTP service; it has the large advantage that you can access your e-mail from anywhere on the Internet, without logging in to the server. You can typically arrange that, when reading messages from some site other than your main one, the mail agent leaves all messages on the server, so you can read them again later from your home site.

Receiving Messages

When you start your mail agent, it usually checks with the mail server to see if any new mail has arrived. Most agents can also perform this check periodically, or on command. An agent downloads incoming mail, and may also (if you so choose) filter out some messages so you never see them.

When the server reports that there is new mail, the agent typically copies all new messages from the server into an "incoming messages" or "in box" folder and removes them from the server. The agent usually keeps track of which messages you've read, and which remain unread. It may give you some way to move messages from your in box to other folders.

Some agents provide ways to filter incoming mail. Based on patterns in the header or text body, the agent can file messages in special folders, or delete them entirely. On UNIX systems, filtering can take place as the server receives messages (via programs such as procmail and mailagent).

Other Topics

Mailing lists and newsgroups are mail-like mechanisms for communicating with (potentially) large groups of other people.

Mailing Lists

For normal e-mail addresses, the recipient's server translates the mailbox into a specific file or directory, into which it places the incoming message. For mailing lists, the server instead finds an associated file containing a list of e-mail addresses, and forwards the message to each address on the list.

Check out the very large list of publicly-accessible mailing lists and the guide to social newsgroups and mailing lists. To set up a mailing list that other people can use, use a Mailing List Service Provider or get your site to install mailing list administration software.

News is not E-Mail

This might best be explained by showing the contents of a form letter I use to reply to people who complain about receiving my periodic news postings:

You appear to be complaining about my "finding e-mail addresses" FAQ. This is not an e-mail message that I am sending to you; it is a USENET news posting. I am guessing that you use a news reader like NetScape Communicator 4.0, which confuses people by blurring the distinction between news and mail. Unlike e-mail messages, which are directed to specific lists of people, news is "broadcast" by a very different mechanism, and there is no way for me to single you out to stop receiving it.

If you want to stop receiving this news group entirely, you need to use your news reader's "unsubscribe" feature; how to do this depends on what news reader software you are using.

However, if you don't want to unsubscribe completely, you can almost certainly avoid any costs or annoyances associated with viewing my FAQ. When you open a news folder like news.announce.newusers, your reader just downloads short news headers from your Internet Service Provider, until you ask to see the actual message (usually by clicking on its header, or by using "next"). Most news readers have some kind of filtering mechanism that let you say "don't show me messages with the following subject" (sometimes labeled "ignore thread" or "ignore subject"). The filters use information in the headers, and so don't need to download the very large message body before they decide not to show it to you.


 
 
 

Free Email !

 

you @ message.com

Get your own
FREE email

- Spam Guard
- Virus Protection
- Address Book
- Convenient Interface
- Mail Filtering & Control
- Fast, Free, Clean


 

 
 
 

 

More Resources

Free Email

Terms of Service  |  AntiSpam Policy  |  Privacy Policy © Copyright - Message.com