Bryan K. Walton:
> Is it possible to combine header/body checks in such a way:
>
> If /^(From|Return-Path):.*\b(user@testdomain\.org)\b/
> ! /^Message-ID:.*@(testdomain\.org)/
> Reject ...
That is documented as NOT POSSIBLE.
if /pattern/flags
endif If the input string matches /pattern/, then match that input
string against the patterns between if and endif. The if..endif
can nest.
> Essentially, I want to only reject a message if the From/Return-Path
> matches a specific email address AND the Message-ID doesn't match the
> same domain.
For complex content filtering strategies you would need to use an
external filter. See http://www.postfix.org/CONTENT_INSPECTION_README.html
> I've read the backscatter howto. But in our case, we are receiving
> backscatter spam NDRs, where the recipient is a real recipient and the
> email server appears to not be forged. All I know is that the email
> server was not OUR email server.
If it really is backscatter to a testdomain address, consider
temporarily rejecting NDRs for that address (or the testdomain).
/etc/postfix/main.cf:
restriction_classes = reject-bounces
reject-bounces = check_sender_access inline:{{<> = reject}}
smtpd_recipient_restrictions =
...
reject_unauth_destination
check_recipient_access inline:{
{ [email protected] = reject-bounces }
}
http://www.postfix.orgpostconf.5.html#restriction_classes
http://www.postfix.org/DATABASE_README.html#types
Untested example, requires Postfix 3.0 or later. With earlier Postfix
versions, replace the inline:{a=b} with hash:/etc/postfix/whatever,
with /etc/postfix/whatever containing "a b".
> I can't reject on just the email address, because that would block
> legitimate NDRs that should come back to the original sender. And I
> obviously cannot block all Message-IDs that don't match our domain, as
> that would block almost all incoming mail. So, I believe I need to
> combine the two, if possible.
>
> Thanks,
> Bryan
>