On Tue, 05 Oct 2010 09:38:44 -0700, Jim Pazarena <[email protected]> wrote:
> In an effort to reduce spam, I would like to defer (rather than
> outright refuse) reception
> on any message that comes from a server without a PTR.
> 
> I am not sure how to create an ACL to check for a non-existent
> PTR/unresolvable IP.
> I haven't found in FAQs this question.
> 
> Advice would be appreciated.
> Thanks,

Something like this might work:

Make sure in global section you have:
host_lookup = *

In acl_smtp_connect or other non data smtp ACL you could do something
like:
# Check for RDNS - if no PTR record - deny
        defer    message   = Defered! $sender_host_address reverse DNS
lookup failed
                 condition = ${if eq{$sender_host_name}{}{true}{false}}

Ultimately if host_lookup fails looking for a valid ptr record, ie its
empty, sender_host_name is left empty.  You can defer based on that. 
You could also use dnsdb and do something like this as a replacement
condition:

condition = ${lookup dnsdb{ptr=$sender_host_address}{false}{true}}

I use the first method, but with a reject rather than defer, but no
reason you can't defer.  There is certainly overhead doing a host_lookup
for every connecting host, the second method I believe does the ptr
lookup via dnsdb direct, not relying on the results of the host_lookup,
which the first method employs.

Thanks,
James


-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to