Rewrite Through a Rule Set: $>set
Rules are organized in sets that can be thought of as subroutines. Occasionally, a series of rules can be common to two or more rule sets. To make the configuration file more compact and somewhat clearer, such common series of rules can be made into separate subroutines.
The RHS $>set
operator tells sendmail to
perform additional rewriting using a secondary set
of rules. The set is the
rule set name or number of that secondary set. If
set is the name or
number of a nonexistent rule set, the effect is the
same as if the subroutine rules were never called
(the workspace is unchanged).
If the set is numeric and
is greater than the maximum number of allowable rule
sets, sendmail prints the
following error and skips that rule:
bad ruleset bad_number (maximum max)
If the set is a name and
the rule set name is undeclared,
sendmail prints the following
error and skips that rule:
Unknown ruleset bad_nameNeither of these errors is caught when the configuration file is read. They are caught only when mail is sent because a rule set name can be a macro:
$> $&{SET}The $& prefix
prevents the macro named {SET} from being expanded when the
configuration file is read. Therefore, the name or
number of the rule set cannot be known until mail is
sent.
The process of calling another set of rules proceeds in five stages:
- First
As usual, if the LHS matches the workspace, the RHS gets to rewrite the workspace.
- Second
The RHS ignores the
$>setpart and rewrites the rest as usual. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access