On Wed, Dec 03, 2008 at 11:15:54AM +0000, Chambers, Phil wrote:
> My check is that if $sender_helo_name ends with '.hotmail.com' then I require $sender_host_name to also end with '.hotmail.com'. With 65.54.246.99 $sender_host_name is empty.
>
> If I do 'nslookup 65.54.246.99' I get two hostnames returned
>
> s1.bay2.hotmail.com
> bay0-omc1-s27.bay0.hotmail.com
>
> The first has no A record, the second's A record is 65.54.246.99.
>
> Some times nslookup returns the hostnames the other way round (but $sender_host_name is ALWAYS empty).
Well, as one possible suggestion, you could use the dnsdb lookup
functions instead of using $sender_host_name. This way you could
check the value of the PTR record, even if it the forward lookup
doesn't match.
An example would be:
#Check to see if at least one PTR record exists
condition=${if !eq{${lookup dnsdb{>: ptr=$sender_host_address}{$value}{}}} {}}
#If so, then ensure that at least one matches hotmail.com
condition=${if forany {${lookup dnsdb{>: ptr=$sender_host_address}{$value}{}}}\
{match{$item}{\Nhotmail.com$\N}}}
You could change the "forany" to "forall" if you wanted to ensure all
records matched.
Keep in mind that dnsdb is not compiled into Exim by default. You have
to enable it in the Makefile during compilation.
--
Dean Brooks
dean@???