19.4 The final Rule Set 4
Just as all
addresses are first rewritten by the canonify rule
set 3, so are all addresses rewritten last by the
final rule set 4. Beginning with V8.10
sendmail, that rule set is declared like this:
Sfinal=4
As the name final implies, the job is to undo any
special processing done by the canonify rule set
3, such as focusing. In this section we'll examine
some typical final rule set 4 rules.
19.4.1 Stripping Trailing Dots
Under some versions of
sendmail a successful conversion to a fully
qualified domain name leaves an extra dot trailing the result. This
rule strips that dot:
# strip trailing dot off possibly canonical name
R $* <@ $+. > $* $1 <@ $2 > $3
Note that this rule recursively removes as many trailing dots as it
finds. Also note that the host part remains focused after rewriting.
19.4.2 Restoring Source Routes
Recall that the canonify rule set 3 converted the
commas of source route addresses into colons (Section 19.3.3). The final rule set 4 now
needs to restore those commas:
R $* : $+ :$+ <@ $+> $1 , $2 : $3 <@ $4> <route-addr> canonical
This rule recursively changes all but one (the rightmost) colon back
into a comma.
As a special note, under V8 sendmail,
envelope-sender route addresses are always surrounded by angle
brackets when passed to the delivery agent. If this behavior is
inappropriate for your site, beginning with V8.7 it is possible to
prevent this heuristic by specifying the F=d
delivery agent flag (F=d).
19.4.3 Removing Focus
The final rule set 4 also removes angle brackets
inserted by the canonify rule set 3 to focus on
the host part of the address. This is necessary because they are used
only by the internal logic of the configuration file. If they were
mistakenly left in place, mail would fail:
# externalize local domain info
R $* <$+> $* $1 $2 $3 defocus
19.4.4 Correcting Tags
After defocusing, the final rule set 4 might need
to convert some addresses back to their original forms. For example,
consider UUCP addresses at a site that still uses UUCP to transfer
mail. They entered the canonify rule set 3 in the
form host!host!user. The
canonify rule set 3 rewrote them in the more
normal user@host form, and added a
.uucp to the end of the host. The following rule
in the final rule set 4 converts such normalized
UUCP addresses back to their original form so that they can be sent
using UUCP software:
R $+ @ $-.uucp $2 ! $1 u@h.UUCP => h!u
|