The job of rule sets 1 through 4 is to change recipient and sender addresses in both the header and the envelope  into a form appropriate for a given delivery agent. Each kind of address takes a different path through the rule sets. The possibilities (which can be confusing) are illustrated in Figure 10.1 .
The sender's address on the envelope, for example, is
first rewritten by rule set 3, then by rule set 1, then
by the rule set specified by the
All addresses are first processed by rule set 3.
All sender addresses flow through rule set 3 and then 1. All recipient
addresses flow through 3 and then 2. Each then flows through the
rule set that is specified by the
In the previous few chapters you began to learn about rules sets in general and rule set 0 specifically. However, before the recipient address can be processed by rule set 0, it must first be processed by rule set 3. All addresses are preprocessed by rule set 3.
To understand why a preprocessing rule set (rule set 3) is needed,
we need to briefly examine how users specify addresses.
One common way to send mail is by using the reply feature of your
mail-reading program (MUA). That feature looks at the
From: address (Full Name and other comments) From: Full Name <address>
Both forms are legal. The first is an email address followed by
arbitrary text in parentheses, usually the user's
full name. The parentheses form a comment. Your mail reading program
often strips that comment before sending the mail, so
The second form has the user's full name first, followed by the email address in angle brackets. When your MUA sends email using this form of return address, it hands sendmail the entire text: full name, and address in angle brackets.
In both cases, what
needs is the
Full Name <address> needs to be transformed into address
The sendmail program handles this initial transformation by preprocessing addresses using rule set 3.