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,
[email protected]
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.