sendmail, 4th Edition

${dsn_notify}

The DSN NOTIFY= value V8.10 and above

When sendmail receives a message via SMTP, it can also receive information about how it should handle a bounce. That information is included as part of an envelope-sender declaration:

 RCPT To:<  address  > NOTIFY=  how  

Here, the RCPT TO: command specifies an envelope recipient's address. Following that address is the keyword NOTIFY=, followed by one or more of four possible keywords: success , failure , never , and delay (see -N for a more complete description of NOTIFY= and its keywords).

The keywords specified are made the value of the ${dsn_notify} macro. If no NOTIFY= is specified, the ${dsn_notify} macro is undefined (NULL). If multiple RCPT TO: commands are issued during a single SMTP session, each command will update the ${dsn_notify} macro in turn , overwriting the prior RCPT TO: command's value.

The ${dsn_notify} macro is also given a value if the -N command-line switch (-N) is used to set the NOTIFY= keyword during mail submission.

One use for this ${dsn_notify} macro might be to log every instance when notification of success is requested . One way to do this is with a syslog map in the check_compat rule set:

 LOCAL_CONFIG Klog syslog -D -LNOTICE LOCAL_RULESETS Scheck_compat R$*                     $: $&{dsn_notify} $  Rsuccess $ $* $ $*    $: $(log dsn=success, recipient=, sender= $) 

Here, we declare a syslog map (syslog) with the K configuration command (Section 23.2) in the LOCAL_CONFIG part of your mc file. The -D tells sendmail to not syslog if the message is being deferred. The -L configuration command tells sendmail to syslog at level LOG_NOTICE (Section 14.3.1).

The LOCAL_RULESETS part of your mc file declares the check_compat (Section 7.1.4) rule set, which is called just after the check for too large a size (as defined by M= , M=). The workspace passed to check_compat is the sender and recipient addresses separated by a $ operator. The first rule simply places the value in the ${dsn_notify} macro at the beginning of the workspace and separates that value from the rest of the workspace with another $ operator.

The second rule looks for the success keyword. If it is found, the log map is called to syslog the three pieces of information shown.

${dsn_notify} is transient. If it is defined in the configuration file or in the command line, that definition can be ignored by sendmail . Note that a $& prefix is necessary when you reference this macro in rules (that is, use $&{dsn_notify} , not ${dsn_notify} ).



Sendmail
sendmail, 4th Edition
ISBN: 0596510292
EAN: 2147483647
Year: 2002
Pages: 1174

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net