Hello,
I think draft-ietf-sieve-refuse-reject-06 implicitly forbids sending
550 after RCPT. In Section 2.1 (Action ereject) the SMTP 550 way is
shifted to Section 2.1.1 (Rejecting a message at the SMTP/LMTP protocol
level) and Section 2.1.1 shifts the problem to Section 2.1.2 (Rejecting
a message by sending a DSN). Or may be I am wrong?
About the spamtest issue: it shall be evaluated after data. If I
remember correctly, there was an idea to extend the envelope test to
check against the sending host (apart from sender and recipient) and
check using external lists if the sending host is blacklisted. Then the
mail can be rejected according to the user's preferences and not due the
site policy. Can we leave for now spamtest out the discussion?
The idea of the early evaluation in multi-recipient messages is to
reduce the amount of generated NDRs, when some of the recipients are
mailboxes (accept spam) and others are mailing lists (who do not want to
discard messages from non list members, ignoring the spaminess). The
problem with NDRs is that they might end in a spamtrap/honeypot and
blacklist your server. With early evaluation all this is avoided... And
once again: does draft-ietf-sieve-refuse-reject-06 forbid this behaviour?
> FWIW: My sieve interpreter does exactly what we're (not) allowing: I
> fetch the sieve script as part of verifying that the rcpt to address
> exists, and evaluate until some test fails for lack of data. I think
> the draft as it stands is fine.
I think this is wrong, as it does not allow combining keep and reject.
The reject action shall be executed after RCPT TO:, if the script
terminated successfully (= reached <EOF> or stop; without making
header/body tests, or invoking the keep action) being executed there.
Със здраве,
Дилян