Users have a love-hate relationship with email; they love to use it,
and hate when it doesn't work. It's the system administrator's job to
make sure it does work. That is the job we tackle in this chapter.
sendmail is not the only mail transport program. MMDF (Multichannel
Memorandum Distribution Facility)
predates sendmail and is still
used today. There are also variations of basic sendmail, such
as IDA sendmail, that are widely used. But plain sendmail is the
most widely used mail transport program, and it's the one we cover.
This entire chapter is devoted to sendmail, and an entire book is
easily devoted to the subject.
[1]
In part this is because of email's importance, but it is also because
sendmail has a complex configuration.
The variety of programs and protocols used for email complicates
configuration and support. SMTP sends email over TCP/IP
networks. Another program sends mail between users on the same system.
Still another sends mail between systems on UUCP networks. Each of
these mail systems - SMTP, UUCP, and local mail - has its own delivery
program and its own mail addressing scheme. All of this can cause
confusion for mail users and for system administrators.
sendmail
eliminates some of the confusion caused by multiple mail delivery
programs. It does this by routing mail for the user to the proper
delivery program based on the email address. It accepts mail from a
user's mail program, interprets the mail address, rewrites the address
into the proper form for the delivery program, and routes the mail to
the correct delivery program. sendmail insulates the end user
from these details. If the mail is properly addressed, sendmail
will see that it is properly passed on for delivery. Likewise, for
incoming mail, sendmail interprets the address and either delivers
the mail to a user's mail program or forwards it to another system.
Figure 10.1
illustrates sendmail's special role in routing mail
between the various mail programs found on UNIX systems.

In addition to routing mail between user programs and delivery
programs, sendmail:
Receives and delivers SMTP
(internet) mail
Provides system-wide mail aliases,
which allow mailing lists
Configuring a system to perform all of these functions properly is a complex
task. In this chapter we discuss each of these functions,
look at how they are configured, and examine ways to simplify the task.
First, we'll see how sendmail is run to receive SMTP mail.
Then we'll see how mail aliases are used, and how sendmail is
configured to route mail based on the mail's address.