Running sendmail as a Daemon
The sendmail.cf File
sendmail.cf Configuration Language
Rewriting the Mail Address
Modifying a sendmail.cf File
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; smail and qmail are also popular, but plain sendmail is the most widely used mail transport program. This entire chapter is devoted to sendmail, and an entire book can easily be devoted to the subject. In part, this is because of email's importance, but it is also because sendmail has a complex configuration.
See sendmail by Costales and Allman (O'Reilly & Associates) and Linux Sendmail Administration by Craig Hunt (Sybex) for book-length treatments of sendmail.
Oddly enough, the complexity of sendmail springs in part from an attempt to reduce complexity by placing all email support in one program. At one time, a wide variety of programs and protocols were used for email. Multiple programs complicate configuration and support. Even today, a few distinct delivery schemes remain. 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 mail addressing scheme. All of this can cause confusion for mail users and for system administrators.
sendmail eliminates 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 does the following:
Receives and delivers SMTP (Internet) mail
Provides systemwide 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.
Copyright © 2002 O'Reilly & Associates. All rights reserved.