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
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:
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:
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,
Here, rules detect that
here.us.edu is the name
of the local machine and then select the
delivery agent to perform final delivery to the user root's
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.