Free tool · live DNS
SPF record checker
Validate the SPF record of a domain, count its DNS lookups against the limit of 10 and see every include it pulls in.
Live DNS lookup over DNS-over-HTTPS. You can also paste an email address.
SPF record examples
| Sending through | SPF record |
|---|---|
| Google Workspace | v=spf1 include:_spf |
| Microsoft 365 | v=spf1 include:spf |
| Google + Mailgun | v=spf1 include:_spf |
| Own server | v=spf1 ip4:203.0.113.10 mx ~all |
| Domain that never sends | v=spf1 -all |
SPF mechanisms
ip4:/ip6:– an address or range (no DNS lookup)a/mx– the domain’s A or MX hosts (1 lookup each)include:– another domain’s SPF record (1 lookup plus its own)all– everything else; the qualifier decides:-fail,~soft fail,?neutral,+passredirect=– a modifier, not a mechanism: use another domain’s record instead (1 lookup)
Every mechanism, qualifier and modifier is explained with examples in our guide to the SPF record.
To build a new record or add a service to an existing one, use the SPF record generator: it counts the lookups before you publish.
SPF alone does not stop spoofing of the visible From address; combine it with DKIM and DMARC.
Frequently asked questions
What is SPF?
What is the SPF 10 lookup limit?
Should I use ~all or -all?
Can I have two SPF records?
Email validation API
Validate emails in your app
emailvalidation.io checks syntax, MX records and the mailbox over SMTP, flags disposable, role and free addresses and returns a quality score, in one request.
/v1/info Email validation API Read the documentation
100 free validations every month. No credit card required.
GET https://api.emailvalidation.io/v1/info?
{
"email": "support@emailvalidation.io",
"user": "support",
"tag": "",
"domain": "emailvalidation.io",
"format_valid": true,
"mx_found": true,
"smtp_check": true,
"catch_all": null,
"role": true,
"disposable": false,
"free": false,
"score": 0.64,
"state": "deliverable",
"reason": "valid_mailbox",
"did_you_mean": ""
}