13 and later
When sendmail receives an SMTP RCPT To: command, it examines the recipient address
contained in that command, then accepts known local recipients and rejects other recipients.
If relaying is enabled for selected hosts, envelope recipients addressed to those hosts
are also allowed. If the address is disallowed, the message is rejected by sendmail and
neither rule sets nor Milters ever see it.
If knowing the number of rejected recipients for a given envelope is important to you, you
may access that number using this ${nbadrcpts} macro.
If used in rule sets, the ${nbadrcpts} macro will contain only a true total after all envelope
recipients have been processed. Thus, a good place to use it might be in the check_data
rule set (?§19.9.1 on page 705) which is called after the SMTP DATA command is received,
but before that command is acknowledged (in other words, after all recipients have been
processed):
LOCAL_RULESETS
Scheck_data
R $* $: $&{nbadrcpts}
R $+ $: $(arith l $@ $1 $@ 25 $)
R FALSE $# error $@ 5.1.2 $: "553 Too many bad recipients"
Here, under the LOCAL_RULESETS portion of your mc configuration file, you first declare the
check_data rule set, which contains three rules. The first rule simply matches anything on
the LHS (the $*) and places the value of this ${nbadrcpts} macro into the workspace. The
second rule compares that value (using the arith database map; see ?§23.
Pages:
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476