Complete DNS setup guide with provider-specific instructions and troubleshooting tips
SpoofMon's DNS Checker tool helps you verify that your email authentication records are properly configured. It's your first step in setting up DMARC monitoring.
example.com)The DNS Checker provides copy-paste ready DNS records when it detects missing or incorrect configurations. Use these as starting points and customize them for your specific needs.
Purpose: Specifies which mail servers are authorized to send email for your domain.
Record Type: TXT record
Location: Root domain (example.com)
Basic Format: v=spf1 [mechanisms] [qualifier]
| Mechanism | Example | What It Does |
|---|---|---|
ip4 |
ip4:192.168.1.100 |
Authorizes a specific IPv4 address |
ip6 |
ip6:2001:db8::1 |
Authorizes a specific IPv6 address |
a |
a:mail.example.com |
Authorizes IPs that resolve to this hostname |
mx |
mx |
Authorizes your domain's MX record IPs |
include |
include:_spf.google.com |
Includes another domain's SPF record |
+all (Pass)Authorizes all senders (not recommended for security)
~all (SoftFail)Marks unauthorized emails as suspicious (good for testing)
-all (HardFail)Rejects unauthorized emails (strictest security)
?all (Neutral)No policy specified (minimal security)
v=spf1 include:_spf.google.com ~all
v=spf1 include:spf.protection.outlook.com ~all
v=spf1 ip4:192.168.1.100 include:_spf.google.com ~all
v=spf1 include:_spf.google.com include:sendgrid.net include:_spf.salesforce.com ~all
Purpose: Provides public key for verifying email signatures.
Record Type: TXT record
Location: [selector]._domainkey.yourdomain.com
Content: Public key and parameters
DKIM selectors allow multiple keys for the same domain. Common selector names:
| Email Provider | Where to Find DKIM Settings | Typical Selector |
|---|---|---|
| Google Workspace | Admin Console → Apps → Gmail → Authenticate email | google._domainkey |
| Microsoft 365 | Admin Center → Exchange → Protection → DKIM | selector1._domainkey selector2._domainkey |
| SendGrid | Settings → Sender Authentication → Domain Authentication | s1._domainkey s2._domainkey |
| Mailchimp | Account → Settings → Domains | k1._domainkey |
Purpose: Defines policy for handling authentication failures.
Record Type: TXT record
Location: _dmarc.yourdomain.com
Format: tag=value pairs separated by semicolons
| Tag | Purpose | Values | Example |
|---|---|---|---|
v |
Version (required) | DMARC1 | v=DMARC1 |
p |
Policy for domain (required) | none, quarantine, reject | p=quarantine |
rua |
Aggregate report address | Email address(es) | rua=mailto:[email protected] |
ruf |
Forensic report address | Email address(es) | ruf=mailto:[email protected] |
sp |
Subdomain policy | none, quarantine, reject | sp=quarantine |
adkim |
DKIM alignment mode | r (relaxed), s (strict) | adkim=r |
aspf |
SPF alignment mode | r (relaxed), s (strict) | aspf=r |
v=DMARC1; p=none; rua=mailto:[email protected]
Collect data without affecting email delivery
v=DMARC1; p=quarantine; rua=mailto:[email protected]
Failed emails marked as spam
v=DMARC1; p=reject; rua=mailto:[email protected]
Failed emails completely blocked
Multiple TXT records starting with "v=spf1" exist for the same domain.
Instead of:
v=spf1 include:_spf.google.com ~allv=spf1 include:sendgrid.net ~all
Use:
v=spf1 include:_spf.google.com include:sendgrid.net ~all
v=DMARC1; p=quarantine; rua=mailto:[email protected]
v = DMARC1p=quarantine rua=mailto:...p=blockEmail service is using a different DKIM selector than what's configured in DNS.
Built-in tool that provides comprehensive analysis and recommendations
Use DNS Checker