Dump a sendmail Macro or Class

Beginning with V8.7, rule-testing commands allow you to print the value of a defined sendmail macro and the members of a class. With either command, you can use single-character or multicharacter macro names. Both commands begin with a $ character. An error is caused if nothing follows that $:

Name required for macro/class

If an = character follows, sendmail will display the requested class. Otherwise, the value of the sendmail macro is displayed:

$X          display the value of the X macro
$=Xlist the members of the class X

Dump a Defined Macro with $

The $ rule-testing command causes sendmail to print the value of a defined sendmail macro. The form for this command looks like this:

$X           show value of the single-character macro name X
${YYY}show value of the multicharacter macro name YYY

Only one sendmail macro can be listed per line. If more than one is listed, all but the first is ignored:

$X $Y
    ignored

One use for this command might be in solving the problem of duplicate domains. For example, suppose you just installed a new configuration file and discovered that your host was no longer known as here.our.domain but instead wrongly had an extra domain attached, like this: here.our.domain.our.domain. To check the value of $j ($j), which should contain the canonical name of your host, you could run sendmail in rule-testing mode:

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> $j
$w.our.domain
>

This looks right because $w ...

Get Sendmail, 3rd 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.