Rules in a sendmail.cf file are used to rewrite (modify) mail addresses, to detect errors in addressing, and to select mail delivery agents. Addresses need to be rewritten because they can be specified in many ways, yet are required to be in particular forms by delivery agents. To illustrate, consider Figure 8.6 and the address
friend@uuhost
If the machine uuhost
were connected to yours over a dial-up
line, mail would likely be sent by UUCP,
which requires addresses to be expressed in UUCP form:
uuhost!friend
Another role of sendmail.cf rules is to detect (and reject) errors on the machine from which the mail originated. This prevents them from propagating over the network. Mail to an address without a username is one such error:
@neighbor
It is better to detect this kind of error as early as possible, rather than
having the host neighbor
reject it.
Delivery agents are the means used by sendmail to actually transmit or deliver mail messages. Rules examine the address of each envelope recipient and select the appropriate delivery agent. For example,
root@here.us.edu
Here, rules detect that here.us.edu
is the name
of the local machine and then select the local
delivery agent to perform final delivery to the user root's
system mailbox.
In the previous two chapters you were introduced to delivery agent and macro definitions. In this chapter we will begin our coverage of rule sets: the way those rule sets process addresses.