Hi Gregory,
> I want to reject the message completely if sender is in two or more RBLs
> and accept if
> it hits only one.
I check quite some RBLs and also want to have this fine granulated to
circumvent false positives. I have a counter, and some RBL have a higher
weight (adding 2 points). A certain number of points (3+ in this my
case) leads to rejection. So cbl.abuseat.org suffices to reject, all
others need a second. "The add_header" is for error hunting, but I
actually don't had to look since very long. Of course you can do this
more compact, but her is my example:
# Set counter to zero
warn set acl_m0 = 0
warn log_message = Listed by $dnslist_domain
dnslists = 0spam.fusionzero.com
add_header = X-blacklisted-at: $dnslist_domain 1
set acl_m0 = ${eval:$acl_m0+1}
warn log_message = Listed by $dnslist_domain
dnslists = zen.spamhaus.org
add_header = X-blacklisted-at: $dnslist_domain 2
set acl_m0 = ${eval:$acl_m0+2}
warn log_message = Listed by manitu.net
dnslists = ix.dnsbl.manitu.net
add_header = X-blacklisted-at: $dnslist_domain 1
set acl_m0 = ${eval:$acl_m0+1}
# http://www.sorbs.net/using.shtml
# Very sensitive, false positives prone!
warn log_message = Listed by $dnslist_domain
dnslists = dnsbl.sorbs.net
add_header = X-blacklisted-at: $dnslist_domain 1
set acl_m0 = ${eval:$acl_m0+1}
warn log_message = Listed by $dnslist_domain
dnslists = bl.spamcop.net
add_header = X-blacklisted-at: $dnslist_domain 2
set acl_m0 = ${eval:$acl_m0+2}
# raised to 3!
warn log_message = Listed by $dnslist_domain
dnslists = cbl.abuseat.org
add_header = X-blacklisted-at: $dnslist_domain 3
set acl_m0 = ${eval:$acl_m0+3}
deny log_message = Listed by spamlists, $acl_m0 points
message = rejected because $sender_host_address is in public
spamlists
condition = ${if gt{$acl_m0}{2}}
regards
Hardy