E-mail
The First Major Internet Service
Last month I started my
series on basic Internet with a discussion of domain names and system
numbering. The end of the discussion concerned URLs - Universal Resource
Locators. This month we'll deal with the oldest of the major services of
the Internet, E-mail.
A URL to describe a mail address is written as:
mailto:richard@pacdat.net
E-mail, or electronic mail, in the context of the Internet means mail
that conforms to what is called the Simple Mail Transport Protocol (SMTP).
Most users don't have to deal with what goes on behind the scenes in
getting a mail message from the sender to the receiver, but there are a
number of steps that affect how well your use of E-mail works, so I'll
give a brief description to start things off.
The E-mail Address
The Internet E-mail address is composed of 2 pieces separated by the
"@" sign. The piece on the left of the @ is the account name.
The piece on the right is the name of the machine on the Internet that
will accept mail for the account.
In the formative years (before 1993 or
so) of the Internet, virtually all systems on the Internet were multi-user
systems. The users of these systems were given a unique login ID,
typically 4 to 8 characters long and composed of letters and/or numbers.
The E-mail system used this login ID as the part on the left of the @ in
the address. The part on the right was the machine name that the user had
the account on. Very few machines had more than one name, and no machines
had the ability to handle 2 accounts with the same name but in different
domains - even if the computer was known by 2 different names (see
previous article for an example)
In some cases a company would have a
main E-mail machine that would have a list of all of the users of E-mail
on other machines in the same domain (sub-domains of their main domain).
This machine would be responsible for mapping the outside
"Alias" to the "Real" address. For example:
richard@pacdat.net
----> richard@mail.pacdat.net
This means that
the main domain for E-mail is pacdat.net but that there is at least one
other machine that has accounts on it - mail.pacdat.net. In fact, here on
my LAN there are 2 different machines that have accounts for various
people: mail.pacdat.net and library.pacdat.net.
Today, you
probably have an E-mail address where the domain part is your ISP's
domain. You may also have an address from some other company such as
HotMail.COM or Yahoo.com, and you may even have one from the company you
work for too. This abundance of addresses can cause confusion, but some
hints and tips at the end of this article will help you deal with them.
Store
and Forward
E-mail is not a "real time, interactive" activity. Messages
are passed from machine to machine starting first with the sender's
machine, and ending with the receiver's machine. The example I'm going to
use is where the Sender has a desktop machine and connects to her ISP (A)
by a dial-up modem connection and the Receiver has a desktop machine on
her company's Local Area Network which is permanently connected to the
Internet by a different ISP (B).
- Sender creates the message which is stored on her computer.
- Sender's computer dials ISP A
- Sender's computer connects via the Internet to ISP A's mail gateway
(mail.ISP.XXX) and sends the message to it. Note that mail.ISP.XXX
likely has been told to ONLY accept messages from ISP.XXX's customers
- see the section on SPAM
- mail.ISP.XXX assigns the message a unique ID and stores it in a file
to await delivery.
- mail.ISP.XXX looks at the delivery address and asks its Domain Name
Server for the address of the Mail eXchange (MX) host for the domain
part (after the @ sign)
- mail.ISP.XXX tries to contact ISP B's Mai Host (smtp.ISPB.XXX)
- Machine smtp.ISPB.XXX tells mail.ISP.XXX that it has no space left
to take the message so mail.ISP.XXX puts it back in its storage and
waits a few minutes before trying again.
- mail.ISP.XXX again tries, and this time smtp.ISPB.XXX takes the
message and stores it in its incoming area.
- smtp.ISPB.XXX looks up in its account list and finds that
Receiver@ISPB.XXX actually gets her mail from the computer
POP.ISPB.XXX. It opens a connection in ISPB's local network to the
machine POP.ISPB.XXX and forwards the message.
- POP.ISPB.XXX looks in its account list and finds that
Receiver@POP.ISPB.XXX gets her mail delivered into a file called /var/spool/mail/receiver.
It puts it there where it waits for Receiver to start up her desktop's
mail program.
- Receiver starts up her Eudora mail program. It already knows her
account name and password, so proceeds to talk directly via her
company's LAN to the ISP's POP.ISPB.XXX mail server.
- Receiver has received 5 messages since the last time she checked her
E-mail, and Eudora downloads each into her desktop machine. It then
breaks the connection to the POP.ISPB.XXX server and opens up her
INBOX window with the messages' headers showing, one per line.
The above steps can take as little as a minute or two, or as long as
several days. Each of the computers that pass the message along adds a
couple of lines to the message in a special place called the
"header". Most E-mail programs hide these routing messages but
you can probably turn on an option to show them. The headers at the top of
the list are the ones that were put there last - by your ISP's computer or
even by your computer.
Here is an example of a fairly complex header from one of the mail
lists I subscribe to: