Each rule set may contain zero or more individual rules.
Rules begin with the R
configuration command, and each rule is
composed of three parts:
S0 Rlhs rhs comment
The first line, the S0
, declares the start of rule set 0.
All the lines
following the S
line and beginning with R
belong to that rule set. A new rule set begins when another S
line with a different number appears.
[6]
[6] If another
S
line appears with the same number, sendmail will print a warning. Prior to V8.7, the second definition wiped out the first. Beginning with V8.7, the second rule set's rules are appended to the rules of the first.
Each R
line is a separate rule in the series of rules that
form a rule set. In the sendmail.cf files of major mail-handling
sites, a given rule set can have a huge number of
rules. But
our hypothetical rule set 0 will have only one rule
and hence only one line that begins with an R
:
S0 Rlhs rhs optional comment
tab tab
Each rule has three distinct parts, each divided from the others by one or more tab characters. You can use space characters inside each part, but you must use tabs to separate the parts.
The leftmost part of the rule is called the LHS, for left-hand side.
The middle part is called the RHS,
for right-hand side.
These form the rule. A comment
may optionally follow
the RHS and (if present) must be separated from the RHS by one or more tab
characters.
The LHS and RHS form an if-then pair. If the LHS evaluates to true, the RHS is evaluated. If the LHS evaluates to false, sendmail skips to the next rule in the rule set (if there is one):
if true do this Rlhs
rhs
otherwise, go to next rule