Nothing here is yours.
2 findings are shared with SendGrid. The mechanical half is done and the judgement is still yours.
19 DNS lookups23 blocklists askedno entriesno score, ever
read from DNS, quoted verbatim
- SPF
- ~all
- DMARC
- p=reject
- DKIM
- 5 selectors
- BIMI
- published
- MX
- Google Workspace
- LISTS
- 23 asked
Who sends as you
Klaviyo and Postmark signs mail as this domain and your SPF has never listed them. Those campaigns fail SPF and pass DMARC on DKIM alignment alone.
4 Aug 2026 · no score, no grade, nothing inferred
Who this domain authorises
Your SPF authorises SendGrid
- include:sendgrid.netread from your SPF, verbatim
Your SPF authorises Zendesk
- include:mail.zendesk.comread from your SPF, verbatim
Klaviyo signs your mail — and your SPF does not list it
- kl._domainkeyDKIM key present
- kl2._domainkeyDKIM key present
2 of Klaviyo’s own selectors carry live keys, which is a setup somebody completed — not a selector collision. Your SPF names somebody else, so this mail passes DMARC on DKIM alignment alone.
Keys are also published on selectors belonging to Postmark, and your SPF does not authorise it. Selectors like pm._domainkey are short enough to collide, so this is worth checking and is not worth believing on its own.
include:_spf.google.com is Google Workspace, which is where staff read mail. It says nothing about where campaigns leave from, and a checker that counts it as your sending platform has told you about your inbox, not your list.
This is what your DNS authorises, not proof of what you send. A domain can authorise a platform it stopped paying for two years ago, which is why an include on its own is reported as permission rather than as use, and it can carry live keys for a platform it never authorised, which is the reverse and the more expensive of the two. Only a real message names the address that actually sent your campaign.
Whose job each one is
- 1worth a look
- 3fine
- 2context
Worth a look
Klaviyo signs your mail, and nothing you publish names it
2 of Klaviyo's selectors carry live keys here, so Klaviyo is signing mail as you. Neither your record nor any of the subdomains bulk mail is normally sent from mentions Klaviyo; your SPF names Google Workspace and SendGrid and Zendesk. That is not automatically wrong: if Klaviyo sends with its own return-path domain, which is the default on every major platform, your SPF is never consulted on those messages and they pass on alone. What it does mean is that this channel has no SPF to fall back on — one key rotated, revoked or mis-copied and there is nothing underneath it.
v=spf1 include:_spf.google.com include:mail.zendesk.com include:sendgrid.net ~all kl._domainkey, kl2._domainkey
From Gmail enforces authentication, PTR, TLS and a 0.30 percent spam rateSee what this looks like →
Part platform, part you
Send one campaign through Klaviyo to yourself and read the Authentication-Results header. If it says =pass, the envelope is on Klaviyo's domain and there is nothing to do. If it says spf=fail or softfail, you are sending with your own domain as the envelope and Klaviyo's include: belongs in your SPF.
Looks fine
present, ending ~all
Soft fail. Accepted everywhere, though -all is stronger once your sender list is complete.
v=spf1 include:_spf.google.com include:mail.zendesk.com include:sendgrid.net ~all
Looks fine
present with p=reject
A policy that actually instructs receivers, which is more than most senders publish.
v=DMARC1; p=reject; pct=100; fo=1; rua=mailto:dmarc-aggregate@shopify.com;ruf=mailto:dmarc-reports@shopify.com
From DMARC p=none is monitoring, not enforcementSee what this looks like →
Looks fine
keys published on 5 selectors
A key existing is not the same as working. Read a real received header and check the d= value matches your before you call this done.
google._domainkey (Google Workspace), mail._domainkey (generic), pm._domainkey (Postmark), kl2._domainkey (Klaviyo), kl._domainkey (Klaviyo)
From DKIM passing is not DKIM alignedSee what this looks like →
Part platform, part you
The key is SendGrid's to publish and it has. Whether it signs the domain in your is yours to confirm, and cannot show it — send one campaign to yourself and look for =pass header.d=shopify.com in the Authentication-Results header.
Context
record published
Your logo can appear in supporting clients, which needs at quarantine or reject.
Context
Receiving mail via Google Workspace
Where you receive mail says nothing about where you send it. Marketing sends usually leave through a different platform entirely.
aspmx.l.google.com, alt3.aspmx.l.google.com, alt4.aspmx.l.google.com
Blocklists
Nothing has an entry for you.
23 lists asked0 with an entry1 could not be asked
shopify.com is not on any of the 23 lists that answered us today. That is the whole result — there is no score, and a clean answer is allowed to be short.
Which lists, and which would not answer
- SpamCopanswered
- PSBLanswered
- Mailspikeanswered
- Spam Eating Monkeyanswered
- blocklist.deanswered
- 0SPAManswered
- InterServeranswered
- SPFBLanswered
- GBUdb Truncateanswered
- s5h.netanswered
- ZapBLanswered
- SWINOGanswered
- Kemptanswered
- Anonmailsanswered
- Fabelanswered
- NoSolicitadoanswered
- Schulteanswered
- JIPPGanswered
- UCEPROTECT Level 1answered
- UCEPROTECT Level 2answered
- UCEPROTECT Level 3answered
- Backscattereranswered
- SEM Backscatteranswered
- URIBLdeclined the query
Each of these answered an entry it is required to publish, and one it is required not to, before we believed anything it said about you. A list that fails either is reported as unanswered rather than as clean — because a blocklist that declines to reply looks exactly like one giving you the all-clear. How we choose them.
We have observed this domain on 3 days. See what has moved since.
Putting this in a client report? Embed a live, dated badge that re-checks itself.
Watch this domain
One email if authentication DNS for shopify.com actually changes. Same list as rule alerts — one inbox, one promise.