Prior
to V8.9 sendmail, the only way to discard mail
was to deliver it to the /dev/null device.
Beginning with V8.9, sendmail has the ability to
discard messages by delivering them with the
discard delivery agent. The
discard delivery agent is internally defined by
sendmail and should not defined by a MAILER( )
mc command.
The discard delivery agent is primarily used by
the access_db feature (Section 7.5), but can be used equally well by the various
policy rule sets. It is used like this:
R ... $#discard $: discard
Here, any workspace that matches the LHS will be discarded. The event
will be logged if the LogLevel option (LogLevel) is 5 or higher.
An example of how to use the discard delivery
agent looks like this:
LOCAL_CONFIG
C{Discard_To_Names} allmyfriends
LOCAL_RULESETS
HTo: $>Screen_To
SScreen_To
R $={Discard_To_Names} @ $* $# discard $: discard
Here, the value of a To: header (To:) is passed to the Screen_To
rule set. That rule set compares the user part of the address to the
list of usernames in the class {Discard_To_Names}.
If any are found (in this instance only the name
allmyfriends will be found), that message is
discarded.
Note that when handling spam mail, it can be better to reject the
message with the error delivery agent than to
discard it with this discard delivery agent.
Rejection pushes the handling of bounces back onto the sender.