System Administration & Network Administration
email email-server spf godaddy
Updated Fri, 22 Jul 2022 06:39:06 GMT

How to setup correct SPF record

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


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.