The first declares a macro-type database map (?§23.7.12 on page 925) which is used to
store a value into a sendmail macro via a rule set. The second configuration command
causes the Message-Id: header to be screened by the ScreenMessageId rule set.
The LOCAL_RULESETS part of this mc file declares two rule sets. The
ScreenMessageId rule set has a single rule which simply stores the literal value YES
into the ${GotMessageId} macro. This means that the Message-Id: header was found.
The check_eoh rule set, which contains five rules, is called after all headers have been
processed. The first rule fetches the current value (the $& prefix) found in the
{GotMessageId} macro and places that value (surrounded by angle braces) into the
workspace. If the {GotMessageId} macro lacks a value (if no Message-Id: header was
found), the workspace will contain angle braces with nothing between them.
The second rule clears the value from the ${GotMessageId} macro so that it can be
reused for the next message that is processed by sendmail.
The third rule looks for a literal
in the workspace, which would appear if the
Message-Id: header had been found, and causes the message to be accepted by
returning a $@OK on the RHS.
* But be aware that header checks are also performed for command-line submitted mail. If a program such as
cron(8) or lpd generates mail lacking a Message-Id: header, that mail will also be rejected.
Pages:
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051