Subject: Re: sieve draft

From: "Richard J Holland"<[email-masked]>
Date: Sat, 1 Nov 1997 11:47:02 -0600

On 10/31/97 at 11:35pm, Bart Schaefer ([email-masked]) wrote:

>} Actually, can you give examples of any other filtering tools that
>} allow a bounce action that is distinguishable from a reply action?
>
> A reply action is typically directed to addresses taken from the
> RFC822 header of the message, e.g. the "From" or "Reply-To" fields.
> A bounce is typically directed to the envelope sender, e.g. the SMTP
> "MAIL FROM" address.  There presently aren't many (if any) tools that >
are able to make that distinction, because there are few MTA-level
> filtering tools; almost all must run "post-delivery" without access
> to the SMTP envelope.  One purpose of the sieve language, as I
> understand it, is to enable the user to intervene *before* the MTA
> delivers the message, thus making it *possible* to have distinguished >
"bounce" and "reply" actions.
Actually, the only difference between a bounce and a reply is the address
you're sending to.  For example, if my MTA (e.g. sendmail) gives the
message to my delivery agent, it passes the envelope information to the
delivery agent in most cases.  What the delivery agent does with it is
totally arbitrary.

If a delivery agent wants to "bounce" the message, it should reply to the
ENVELOPE sender address.  It could also reply to the Errors-To: header
address, but that's generally there for backward compatibility with older
systems these days.

If the delivery agent wants to "reply" to the message, it should look first
at the Reply-To: header, and if it's not there, it should look at the
Sender: header, and if it's not there, it should look at the From: header,
and if all of these are absent, THEN it should fall back on the ENVELOPE
sender address, as a last resort.

This is a fairly subtle distinction, and a "bounce" usually happens at the
MTA level (i.e. sendmail says "I don't know about this user" and returns a
"550 - User unknown..." over the socket, so that the sender's MTA generates
a local "bounce" message.  But there's nothing that says you can't generate
a "bounce" from you local delivery agent, instead of at the MTA level.
This puts the work of generating the message back on your MTA however, and
is something to consider at large sites.

Regarding Tom's original query looking for examples of other filtering
tools that allow a bounce action instead of a reply action, I've got one
that I wrote here as a mail delivery agent in perl5.  It's used for
"bouncing" plain-english explanatory messages to senders when a recipient
username is changed.  We do it at the MDA level instead of the MTA level
because in most cases, we want to forward the message on to the recipient's
new address, but we want to let the sender know it changed, so we forward
the message and "bounce" (or "reply" -- it's now an
administrator-configurable option) a copy of the message back to the sender
with a nice explanation of what's happening...

Rich Holland
Rockwell Collins, Inc.