discard

Accept and then discard the message V8.9 and later

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 be defined by a MAILER( ) mc command.

The discard delivery agent is primarily used by FEATURE(access_db) (The access Database on page 277), but it 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 on page 1040) 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: on page 1167) 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.

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.