SPF, DKIM and DMARC checker
Enter a domain to check its SPF record, its DMARC policy and the tinyRelay DKIM record. The lookup runs in your browser against public DNS, and nothing is stored.
SPF: one TXT record at the domain, starting v=spf1.
SPF checker, DKIM checker, DMARC checker: three lookups.
Each check reads one public DNS record and tells you what it found. Here is what each record does and how to read the result.
SPF
TXT · domainSender Policy Framework lists the servers allowed to send mail for your domain, in one TXT record starting with v=spf1.
- Found: one SPF record
- Multiple: merge them; a domain must publish only one
- Missing: publish one listing every service that sends for you
DKIM
CNAME · tec1DomainKeys Identified Mail signs each message. Receivers fetch the public key from a selector under _domainkey on your domain.
- Set up: tec1 points to tec1.dkim.tinyemail.com
- Other target: the CNAME points somewhere else
- Not set: only needed if you send through tinyRelay
DMARC
TXT · _dmarcDMARC tells receivers what to do with mail that fails SPF and DKIM alignment, in a TXT record at _dmarc starting with v=DMARC1.
- none: monitoring only
- quarantine: treat failing mail as suspicious
- reject: refuse failing mail
The full walkthrough is in SPF, DKIM and DMARC for transactional senders. Mailbox providers' current rules are summarised in Gmail and Yahoo sender requirements.
One CNAME, and an endpoint that checks it.
tinyRelay signs your mail with the selector tec1. You add one CNAME on each sending domain, pointing at tinyRelay's key, and share your sender domains with our team so they can be added to our mail servers.
TYPE CNAME
VALUE tec1.dkim.tinyemail.com
Because it is a CNAME, the key stays on our side. A receiver that looks up tec1._domainkey on your domain is pointed to it.
Validate DKIM and SPF in the docs →// request body: { "domain": "yourdomain.com" }
{
"dkim": {
"status": "Invalid",
"dns": [
{ "type": "CNAME", "name": "tec1._domainkey.", "value": "tec1.dkim.tinyemail.com" }
]
},
"spf": {
"status": "Valid",
"dns": [
{ "type": "TXT", "name": "@",
"value": "\"v=spf1 include:_spf.google.com include:_spf.tinyemail.com include:spf.autopilothq.com include:one.zoho.com -all\"" }
]
}
}The docs' example: DKIM not yet set up, SPF valid. The endpoint returns the records it expects for your domain.
What this checker does, and does not do.
Seeing BOUNCED events with category 55? That means a receiver refused mail on SPF, DKIM or DMARC policy. See bounce code 55 and transactional email deliverability.
Checker questions.
RFC 7208, Sender Policy Framework: rfc-editor.org/rfc/rfc7208
RFC 6376, DKIM Signatures: rfc-editor.org/rfc/rfc6376
RFC 7489, DMARC: rfc-editor.org/rfc/rfc7489
Yes. It runs in your browser with no sign-up. It reads public DNS records only, and nothing you enter is stored.
The checker looks only for tinyRelay's DKIM record, a CNAME at tec1._domainkey on your domain. Other providers use other selectors, which this tool does not look up. You only need the tinyRelay record if you send through tinyRelay.
No. RFC 7208 says a domain must not publish multiple SPF records. If the checker finds more than one, merge them into a single record that lists every service that sends for the domain.
p=none asks receivers to take no specific action on mail that fails, so it is a monitoring setting. Quarantine and reject ask receivers to treat failing mail more strictly.
Yes. PUT /domain/dns/check validates DKIM and SPF for a domain and returns a Valid or Invalid status with the DNS records it expects.
Send transactional email with a service that reports back.
SMTP relay or REST API, standalone or alongside tinyEmail. Tell us what you send and our team sets you up.