The birth of electronic mail (email) occurred in
the early 1960s. The mailbox was a file in a user's home directory that
was readable only by that user. Primitive mail applications appended new
text messages to the bottom of the file, and the user had to wade through
the constantly growing file to find any particular message. This
system was only capable of sending messages to users on the same system.
The first actual network transfer of an electronic mail message file took
place in 1971 when a computer engineer named Ray Tomlinson sent a test
message between two machines via ARPANET — the precursor to the
Internet. Communication via email soon became very popular, comprising 75
percent of ARPANET's traffic in less than two years.
Today, email system based on standardized network protocols have evolved
into some of the most widely used services on the Internet. Red Hat Linux offers
many advanced applications to serve and access email.
This chapter reviews modern email protocols in use today and some of the
programs designed to send and receive email.
11.1. Email Protocols
Today, email is delivered using a client/server architecture. An email
message is created using mail client program. This program then sends
the message to a server. The server then forwards the massage to the
recipient's email server, where the message is then supplied to the
recipient's email client.
To enable this process, a variety of standard network protocols allow
different machines, often running different operating systems and using
different email programs, to send and receive email.
The following protocols discussed are the most commonly used in the
transfer of email.
11.1.1. Mail Transport Protocols
Mail delivery from a client application to the server, and from an
originating server to the destination server is handled by the
Simple Mail Transfer Protocol
(SMTP) .
11.1.1.1. SMTP
The primary purpose of SMTP is to transfer email between mail
servers. However, it is critical for email clients as well. In order
to send email, the client sends the message to an outgoing mail
server, which in turn contacts the destination mail server for
delivery. For this reason, it is necessary to specify an SMTP server
when configuring an email client.
Under Red Hat Linux, a user can configure an SMTP server on the local
machine to handle mail delivery. However, it is also possible to
configure remote SMTP servers for outgoing mail.
One important point to make about the SMTP protocol is that it does
not require authentication. This allows anyone on the Internet to
send email to anyone else or even to large groups of people. It is
this characteristic of SMTP that makes junk email or
spam possible. Modern SMTP servers attempt to
minimize this behavior by allowing only known hosts access to the
SMTP server. Those servers that do not impose such restrictions are
called open relay servers.
Red Hat Linux uses Sendmail (/usr/sbin/sendmail) as its
default SMTP program. However, a simpler mail server application
called Postfix (/usr/sbin/postfix) is also
available.
11.1.2. Mail Access Protocols
There are two primary protocols used by email client applications to
retrieve email from mail servers: the Post Office
Protocol (POP) and the
Internet Message Access Protocol
(IMAP).
Unlike SMTP, both of these protocols require connecting clients to
authenticate using a username and password. By default, passwords for
both protocols are passed over the network unencrypted.
11.1.2.1. POP
The default POP server under Red Hat Linux is
/usr/sbin/ipop3d and is provided by the
imap package.
When using a POP server, email messages are downloaded by email
client applications. By default, most POP email clients are
automatically configured to delete the message on the email server
after it has been successfully transferred, however this setting
usually can be changed.
POP is fully compatible with important Internet messaging
standards, such as Multipurpose Internet Mail
Extensions (MIME), which allow
for email attachments.
POP works best for users who have one system on which to read email.
It also works well for users who do not have a persistent connection
to the Internet or the network containing the mail
server. Unfortunately for those with slow network connections, POP
requires client programs upon authentication to download the entire
content of each message. This can take a long time if any messages
have large attachments.
The most current version of the standard POP protocol is POP3.
There are, however a variety of lesser-used POP protocol variants:
APOP — POP3 with MDS
authentication. An encoded hash of the user's password is
sent from the email client to the server rather then sending an
unencrypted password.
KPOP — POP3 with Kerberos
authentication. See Chapter 17 Kerberos for more
information.
RPOP — POP3 with RPOP
authentication. This uses a per-user ID, similar to a password,
to authenticate POP requests. However, this ID is not encrypted,
so RPOP is no more secure than standard POP.
For added security, it is possible to use Secure Socket
Layer (SSL) encryption for client
authentication and data transfer sessions. This can be enabled by
using the ipop3s service, or by using the
/usr/sbin/stunnel program. Refer to Section 11.5.1 Securing Communication for more information.
11.1.2.2. IMAP
The default IMAP server under Red Hat Linux is
/usr/sbin/imapd and is provided by the
imap package. When using an IMAP mail server,
email messages remain on the server where users can read or delete
them. IMAP also allows client applications to create, rename, or
delete mail directories on the server to organize and store email.
IMAP is particularly useful for those who access their email using
multiple machines. The protocol is also convenient for users
connecting to the mail server via a slow connection, because only
the email header information is downloaded for messages until
opened, saving bandwidth. The user also has the ability to delete
messages without viewing or downloading them.
For convenience, IMAP client applications are capable of caching
copies of messages locally, so the user can browse previously read
messages when not directly connected to the IMAP server.
IMAP, like POP, is fully compatible with important Internet messaging
standards, such as MIME, which allow for email attachments.
For added security, it is possible to use SSL
encryption for client authentication and data transfer sessions. This
can be enabled by using the imaps service, or by
using the /usr/sbin/stunnel program. Refer to
Section 11.5.1 Securing Communication for more information.
Other free, as well as commercial, IMAP clients and servers are
available, many of which extend the IMAP protocol and provide
additional functionality. A comprehensive list can be found online
at http://www.imap.org/products/longlist.htm.