ietf-mta-filters
[Top] [All Lists]

Re: Action interaction - specifically discard+keep and discard+reject

2001-02-13 20:01:40
"Nigel Swinson" <Nigel(_at_)Swinson(_dot_)com> writes:

Suppose this is my script:

               if A { keep; }
          if B { discard; }

It is obvious what I've to do if either A or B is true, and if neither
A nor B is true, but what do I do when A AND B are true?

Do a keep (an explicit one).  Discard cancels the implicit keep and only
the implicit keep.

Dang, you're right. I forgot about the interpretation of discard as cancelling
implicit keep. (Although my code didn't forget...) Sorry for saying otherwise
in my earlier post.

reject+(keep or redirect or fileinto or reject) = error;

Implementation defined.  reject is required to send an MDN, and the
guarantee on deleted MDNs is very weak.  Section 2.10.4 discusses this,
and it is very weasely.

Actually, SHOULD isn't weasely at all. You need a good reason for going against
a SHOULD. I forget the details of the discussion that led to this, but there
was some case that arose in some implementations where it was not unreasonable
to combine reject with other stuff. So if you have such a case you can
allow it but otherwise you need to treat it as a script error.

                                Ned