Nothing here is yours.
One finding is shared with Mailchimp. The mechanical half is done and the judgement is still yours.
19 DNS lookups23 blocklists asked1 with an entryno score, ever
read from DNS, quoted verbatim
- SPF
- -all
- DMARC
- p=reject
- DKIM
- 5 selectors
- BIMI
- optional
- MX
- Microsoft 365
- LISTS
- 23 asked
Who sends as you
3 Oct 2026 · no score, no grade, nothing inferred
Who this domain authorises
You send through Mailchimp
- include:servers.mcsv.netread from your SPF, verbatim
- k1._domainkeyDKIM key present
You send through SendGrid
- include:sendgrid.netread from your SPF, verbatim
- s1._domainkeyDKIM key present
- s2._domainkeyDKIM key present
Your SPF authorises Amazon SES
- include:amazonses.comread from your SPF, verbatim
Your SPF authorises Shopify
- include:shops.shopify.comread from your SPF, verbatim
include:spf.protection.outlook.com is Microsoft 365, 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. Only a real message names the address that actually sent your campaign.
Whose job each one is
- 3fine
- 1context
Looks fine
present, ending -all
Hard fail. The strictest setting and the right one once you are confident every sender is listed.
v=spf1 include:spf.protection.outlook.com include:servers.mcsv.net include:shops.shopify.com include:sendgrid.net include:emaileuc.freshservice.com include:amazonses.com ip4:77.81.189.101 ip4:46.254.14.229 ip4:168.245.76.176 ip4:194.68.215.35 ip4:87.253.233.197 -all
Looks fine
present with p=reject
A policy that actually instructs receivers, which is more than most senders publish.
v=DMARC1; p=reject; rua=mailto:yd816iek@ag.eu.dmarcadvisor.com,mailto:rua@dmarc.portsgroup.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.
selector2._domainkey (Microsoft 365), k1._domainkey (Mailchimp), s2._domainkey (SendGrid), selector1._domainkey (Microsoft 365), s1._domainkey (SendGrid)
From DKIM passing is not DKIM alignedSee what this looks like →
Part platform, part you
The key is Mailchimp'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=oatly.com in the Authentication-Results header.
Context
Receiving mail via Microsoft 365
Where you receive mail says nothing about where you send it. Marketing sends usually leave through a different platform entirely.
oatly-com.mail.protection.outlook.com
Blocklists
Nothing here needs you. One entry looks alarming and is not about you.
23 lists asked1 with an entry1 could not be asked
Ignore this
UCEPROTECT Level 3has 168.245.76.176
Entire autonomous systems — every address a provider announces. An entry here is a statement about your provider, not about you.
Who can remove it →127.0.0.2
Every other checker we know of shows the entries above in the same red as the ones that matter. That is how a marketer ends up paying somebody to remove a listing that was never about them.
Which lists, and which would not answer
- SpamCopanswered
- PSBLanswered
- Mailspikeanswered
- Spam Eating Monkeyanswered
- blocklist.deanswered
- 0SPAManswered
- InterServeranswered
- SPFBLdid not confirm the entry it is required to publish
- GBUdb Truncateanswered
- s5h.netanswered
- ZapBLanswered
- SWINOGanswered
- Kemptanswered
- Anonmailsanswered
- Fabelanswered
- NoSolicitadoanswered
- Schulteanswered
- JIPPGanswered
- UCEPROTECT Level 1answered
- UCEPROTECT Level 2answered
- UCEPROTECT Level 3answered
- Backscattereranswered
- SEM Backscatteranswered
- URIBLanswered
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 60 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 oatly.com actually changes. Same list as rule alerts — one inbox, one promise.