Rules Check Header Contents

Recall that a header line declaration looks like the following:

H?flags?name:field

Here, the H begins the line and tells sendmail that a header definition follows. The ?flags? expression causes sendmail to include the header only if one of the flags is found in the selected delivery agent’s F= equate. As you saw in the preceding section, beginning with V8.10, a macro name can replace the flags. The name and a colon then follow.

Beginning with V8.10, sendmail allows the name of a rule set to replace the field value. That rule set declaration can come in two forms:

Hname: $>  rule  set
Hname: $>+  rule  setdon't strip comments

Both forms basically say the same thing: if sendmail finds a header name already in a message it is processing, it passes the existing header field to the rule set indicated. The + in the second form tells sendmail to leave intact (not strip) parenthesized RFC2822 comments from the passed field:

text (comments)

The $> in the earlier declaration passes just text to the rule set, and $>+ passes the unstripped text with RFC2822 comments intact.

If the rule set specified is not a legal rule set name, or if it is missing, the following error will be printed and logged:

cf file name: line number: invalid rule set name: "bad name"

If the named rule set does not exist in the configuration file, the effect is the same as if it did exist and had returned a legal value.

Rule sets called to process headers can return two possible rejection values, a $#error ...

Get sendmail, 4th Edition 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.