_Every_ filter reject _must_ result in a real reject back to the sender
(by inline 5xx error). In this way we can ensure that someone is shown
that it didn't get through, and we provide them with instructions on
what to do to remediate a FP. By 250'ing the email, and eliding a
recipient, you're blackholing the email. Not acceptable in our environment.
That's where you'd probably want to go down a different road in the same
scheme -- instead of turning the reject into an ignore, turn it into a
bounce if you want the sender to know about it, or into a quarantine or
tag if you don't trust the bounce to make it. That's of course if you
absolutely have to have per-user prefs, which we do :) We decided it
was not an option to *force* ignoring mail, so we added these additional
options, but in practice we only ever end up doing this to mail that
really did end up being spam, which is why there hasn't been any demand
to change the default.
What do you do about multiple recipients with multiple domains? What if
I try to send a message to f...@foo.com and b...@bar.com and they each
have different settings? Does this even happen -- that is, do most
MTA's even bother trying to lump recips with the same MX but different
domains into the same transaction?
It seems to be extremely uncommon to the point of virtual non-existence.
[modulo the comment about tipjar.]
That's fairly encouraging :) I'd be watching for that situation anyhow
and 400'ing for it at any rate. We have toyed with the idea of having a
sort of 'second-class' account that doesn't have some features,
including the opportunity for per-recipient config; we could always do
some clever 400'ing to absolutely make sure that all transactions go to
recipients for the same domain, and then only do recipient-specific
lookups for domains that are paying for it.
-Jared