Graeme Fowler wrote...
> On Sat, 2010-07-17 at 00:40 -0700, Marc Perkel wrote:
> > As it is now SPF checks the sender domain against the connecting IP 
> > address. It would be more useful if it were expanded to allow me to pass 
> > a different domain and to pass a different IP address.
>   
+1
> Anyway: with judicious use of the "dnsdb" lookup, the tools you need
> exist already.
>   
Unfortunately I don't see an easy way (that doesn't involve an exim.conf 
Turing machine) of processing the full expressiveness of SPF records. 
Specifically, I'm thinking of include: and redirect=, as in Google's and 
hotmail's records:

$ host -t txt gmail.com.
gmail.com descriptive text "v=spf1 redirect=_spf.google.com"
$ host -t txt hotmail.com.
hotmail.com descriptive text "v=spf1 include:spf-a.hotmail.com 
include:spf-b.hotmail.com include:spf-c.hotmail.com 
include:spf-d.hotmail.com ~all"

I would rather not hardcode something that addresses Google's SPF 
specifically, even that is our current need: we have customers who get 
Google to send their email (from their own domain, not @gmail.com) via 
our quasi-MTA. The customer's own domain doesn't have SPF records [*], 
but we know that they're using Google's servers. So we want to be able 
to ask, "Does the SPF data on _spf.google.com cover 
$sender_host_address?". If only I could say...

condition = ${if and {{lookup {$sender_address_domain} lsearch 
{/foo/googlers}} {lookup {$sender_host_address} spf {_spf.google.com}}}

Any recommendations that don't include Turing machines or hardcoded 
assumptions about the SPF data? Anything less frightening to our 
sysadmins than a dlfunc?

[*] And to get them to do so seems... difficult. It's not my call, and I 
guess since they're paying us they get to make the rules.


-- 
## 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