Chapter 18. The R (Rules) Configuration Command

Rules are like little if-then clauses[23] that exist inside rule sets, which test a given pattern against an address and change the address if the two match. The process of converting one form of an address into another is called rewriting. Most rewriting requires a sequence of many rules because an individual rule is relatively limited in what it can do.

What’s New with V8.13

There is only one change in rules in V8.13:

  • Balancing of special characters in rules is no longer checked when the configuration file is read (Section 18.1.1 [V8.13]).

Rules No Longer Need to Balance

Prior to V8.13, special characters in rules were required to balance. If they didn’t, sendmail would issue a warning and try to make them balance.

SCheck_Subject
R ----> test <----         $#discard $: discard

When a rule such as the above was read by sendmail (while parsing its configuration file), sendmail would issue the following warning:

               /path/cffile: line num:  ----> test <----... Unbalanced '>'
/path/cffile: line num:  ----> test <----... Unbalanced '<'

Thereafter, sendmail would rewrite this rule internally to become:

R <----> test ----         $#discard $: discard

Clearly, such behavior made it difficult to write rules for parsing header values and for matching unusual sorts of addresses. Beginning with V8.13 sendmail, rules are no longer automatically balanced. Instead, unbalanced expressions in rules are accepted as is, no matter what.

The characters that were special prior to V8.13 ...

Get sendmail 8.13 Companion now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.