Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to setup a very basic SPF record. I am hosting my website on Godaddy and using Godaddy's email servers. I am using the php mail() call (I know, I've read a ton of places to use PHP Mailer, or others, but I am choosing to the default mail() function and thats not really my question). Right now the spf record in the email is coming back as neutral with the following lines:

Received: by with SMTP id av6csp133324vdc;
        Tue, 16 Jul 2013 07:43:23 -0700 (PDT)
X-Received: by with SMTP id gf20mr2338989qeb.59.1373985802775;
        Tue, 16 Jul 2013 07:43:22 -0700 (PDT)
Return-Path: <>
Received: from ( [])
        by with ESMTP id d19si710455qey.143.2013.
        for <>;
        Tue, 16 Jul 2013 07:43:22 -0700 (PDT)
Received-SPF: neutral ( is neither permitted nor denied by best guess record for domain of client-ip=;
       spf=neutral ( is neither permitted nor denied by best guess record for domain of
Received: from P3NW8SHG339 ([])
    by with 
    id 12jN1m0080x5yNo012jNyX; Tue, 16 Jul 2013 07:43:22 -0700
Date: Tue, 16 Jul 2013 07:43:21 -0700
Subject: Little Jaws Big Smiles Registration Confirmation
X-PHP-Originating-Id: [10610735]
To: "Person" <>
From: "Little Jaws Big Smiles" <>
Reply-To: "Little Jaws Big Smiles" <>
Return-Path: "Little Jaws Big Smiles" <>
Message-ID: <>
X-Mailer: PHP/5.2.17
MIME-Version: 1.0
Content-type: text/html; charset=ISO-8859-1
Organization: Little Jaws Big Smiles

The ip corresponds to, which I'm guessing is the mail server actually sending my email.

  • I have an A (Host) record setup with my actual IP address of the domain.
  • I have the default CNAME (alias) list that was supplied
  • I have two MX (Mail Exchanger records) that were supplied
  • There are two default name servers setup
  • I've setup the TXT SPF record in the following manner (no quotes because thats how godaddy has you enter it):
    • v=spf1 a mx ptr ip4: -all

However this still results in a neutral SPF result. I have waited 48 hours for the record to take action. I have also read the SPF Syntax and I think I've set it up appropriately (but I've never done this before, so I could be completely misunderstanding this)

I have also tried kitterman's validation script with the following result:

Found v=spf1 record for v=spf1 a mx ptr ip4: -all    
evaluating... SPF record passed validation test with pySPF (Python SPF library)!

Does anyone see a problem with my record definition or if I am missing anything else?

I am attempting to send mail from

Let me know if I need to provide any other information.

Update Per @TheCleaner's request, I followed the instructions on Godaddys site to creating the SPF record. Below are the steps and options I choose with why I selected them.

Under To Add an SPF Record

  • Step 4: I selected, LLC only
    • I am only sending emails using their servers
  • Step 5: I selected All Inbound Servers May Send Mail
    • I am not sure this applies to me, but I selected it just in case it does
  • Step 6: I did not select Outbound records.
    • My domain is not a mail server
  • Step 7: I did not select PTR
    • My domain is not a mail server
  • Step 8: I added since this appears to be the mail servers Godaddy uses to send out emails
  • I also selected Exclude all hosts not specified here which adds -all

The result SPF record is below. I will try this and post back if this fixes my issues. Please let me know if my assumptions about my steps above are incorrect.

v=spf1 mx include: -all
share|improve this question
@MadHatter - I saw that general overview of SPF, but it was unable to help me with my issue. – SwDevMan81 Jul 16 '13 at 15:13
OK, then firstly, it's very helpful if you can tell us what you've tried so far, which includes outlining your research. Secondly, if your domain is really, you have no SPF record - that's likely to be your underlying problem! – MadHatter Jul 16 '13 at 15:18
@MadHatter - I have posted my SPF record above. is not my domain, I'm guessing its something of godaddy's that is converting my no-reply@mydomain, but I have no idea where that is coming from. Maybe that is part of the issue? – SwDevMan81 Jul 16 '13 at 15:21
Well, it's where the email you're sending is coming from: "Received-SPF: neutral ( is neither permitted nor denied by best guess record for domain of" – MadHatter Jul 16 '13 at 15:22
Hmm, ok, maybe I'll have to contact Godaddy and see why they are changing my no-replay@mydomain to, that seems strange. – SwDevMan81 Jul 16 '13 at 15:24

You have entered the wrong IP address in your SPF record.

Here's the current record: 3600   IN      TXT     "v=spf1 a mx ptr ip4: -all"

Here's the IP you're sending from:

Which is clearly different from

Fix the record so that there's no mistake in it and everything should work fine.

To include a whole address range, use:

"v=spf1 mx ip4: -all"

By the way, GoDaddy offers a KB article on how to setup an SPF record with them:

share|improve this answer
This, of course, assumes that you're eventually going to send mail from the right domain rather than – gparent Jul 16 '13 at 15:37
I updated the question to include the full header. I am attempting to send it from It also appears that this server is changing (so godaddy must have multiple email servers that send out emails?) Sorry I'm still learning this stuff. – SwDevMan81 Jul 16 '13 at 15:43
My answer still applies, and please, stop changing the information all the time! You certainly do NOT own ! – gparent Jul 16 '13 at 15:44
Yestarday it appeared to be Is there a way to include 72.167.234.X ? – SwDevMan81 Jul 16 '13 at 15:47
@gparent - hope you don't mind me adding GoDaddy's KB article to your answer. If the OP is really using GoDaddy for everything (including DNS) this should work fine for them. – TheCleaner Jul 16 '13 at 15:56
up vote 2 down vote accepted

So I finally tracked down the issue (godaddy techincal support said they couldnt help with "scirpting" problems). Turns out that they do have an issue with the SPF records:

Apparently when you setup a new hosting account, the default C:\php5\php.ini file for windows hosts sets the sendmail_from to, which was the actual sending address of the emails I sent using php's mail() function. I changed this to and got a little closer to resolving my issue.

Now to the second issue I was having that was causing the SPF to still fail. It turns out that creating an SPF record with Godaddys default contains too many lookups. You can verify this by using this SPF Parser and enter in You will see there are a lot more then the maximum 10 lookups.

Using Kitterman's validation script, if you enter in, you can see that it shows error PermError SPF Permanent Error: Too many DNS lookups. This is a problem that Godaddy needs to resolve globally (not just for my site). The issue is documented on their site. I did receive a response from them indicating its not their problem:

Also although we provide the ability to create SPF records, the management and setup responsibility are solely the customers responsibility.

I was able to work around this by checking my email headers and finding which server(s) were sending it out (appeared to be range Using the SPF Parser I linked above, I was able to determine my site appears to be using I'm not sure if this will change for my site and Godaddy has yet to tell me the answer. I changed my SPF record to include, which does not have the issue of Too many DNS lookups, but it might be an issue if emails could be changed and sent out of say

Final working record will be based on the servers that are used for sending out emails, but it should look something like this if you are hosted on and using Godaddys servers:

v=spf1 mx -all

With these two updates I was able to send mail to google and hotmail email accounts and they not longer go to spam/junk folders (yey!)

Thanks to @MadHatter, @gparent and @TheCleaner for their support in tracking this down.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.