Resources / Research
The DMARC Report
Each day we read the mail records of the 100 best-known domains, and of every name under them that publishes one: DMARC, SPF, DKIM, MTA-STS, TLS-RPT and BIMI. This is the count of 2026-10-28, of the 100 we could read. Nothing here comes from their mail: only from what they publish.
- Can be forged by name
- 56
- of 100: the policy does not refuse forged mail
- And copied
- 53
- of those also have a lookalike that can send mail
- IPv4 allowed
- 1,798
- the median, on 1 name
- SPF problems
- 23
- of the 79 that publish SPF
Can the name be forged?
The DMARC policy of the name itself tells receivers what to do with mail that claims it and cannot prove it. Of the 56 that can be forged, 53 also have a registered lookalike that can send mail: DMARC protects the exact name, and never sees the copies.
- Reject: refused 54
- Quarantine: spam folder 14
- None: delivered 14
- No record 18
0 apply the policy to only part of the mail · 10 let a name under them off more lightly · 8 send no mail and say so
How much they allow
The Top 100 authorize a median of 1,798 IPv4 addresses to send as them, on 1 name with an SPF record of its own. The mean is 143 thousand, pulled up by the shared clouds a few of them allow whole.
43 send from more than one name, each with its own SPF. 19 could not be counted: their records use macros, pass the limit of ten lookups, or name a record that does not answer.
How they keep SPF
Problems, of 79
- 0 need more than 10 lookups
- 0 have more than 2 lookups that answer nothing
- 0 publish two records
- 6 end in +all or ?all
- 17 use macros or ptr
-all 46 · ~all 27
Style
- 69 list their senders by include
- 1 flatten them into addresses
- 17 have a service keep the record
The senders they name
A service is counted where a domain's SPF includes it, where we found its DKIM key, or where it runs the mail hosts. A record can name a service no longer used.
| Service | SPF | DKIM | MX |
|---|---|---|---|
| Google Workspace | 26 | 22 | 25 |
| Microsoft 365 | 14 | 12 | 11 |
| SendGrid | 3 | 12 | — |
| Mailchimp Mandrill | 1 | 9 | — |
| Zendesk | 9 | 6 | — |
| Mailchimp | 5 | 8 | — |
| Salesforce | 8 | — | — |
| Amazon SES | 7 | — | — |
| Marketo | 6 | 5 | — |
| HubSpot | 4 | — | — |
| Proofpoint | 2 | — | 3 |
| Help Scout | 2 | — | — |
| Mail.ru | 2 | — | 2 |
| Yandex Mail | — | — | 2 |
| Cloudflare Email Routing | 1 | — | 1 |
39 publish a DKIM key we can find; 29 use RSA 1024.
We look for keys under the selectors of the services each domain names, so the key counts are a floor.
Where the reports go
Your own mailbox 16 (16%) · Valimail 8 (8%) · Fortra Agari 8 (8%) · dmarcian 4 (4%) · Proofpoint 2 (2%) · DMARC Digests 1 (1%) · Mimecast DMARC Analyzer 1 (1%) · none 42
16 of the 30 that publish a DMARC record on more than one name send the reports of every name to the same place.
Transport
MTA-STS enforce 4, testing 4 · TLS-RPT 10 · BIMI 0
MTA-STS asks senders to deliver over encryption only; TLS-RPT asks for reports when they cannot; BIMI shows a logo beside mail that passes DMARC at enforcement.
Every domain
| 1 | google.com | ● Refused | reject/reject | 1 | 98 thousand | 3 | Your own mailbox | enforce |
| 2 | cloudflare.com | ● Refused | reject/reject | 7 | 150 thousand | 6 | Your own mailbox | unknown |
| 3 | facebook.com | ● Refused | reject/reject | 1 | 1,798 | 49 | — | testing |
| 4 | gstatic.com | ✕ Delivered | none/none | 0 | 0 | 1 | — | — |
| 5 | microsoft.com | ▲ A name is open | reject/reject | 7 | 741 thousand | 2 | Your own mailbox | enforce |
| 6 | amazonaws.com | ▲ Spam folder | quarantine/none | 5 | 177 thousand | 3 | Your own mailbox | — |
| 7 | youtube.com | ● Refused | reject/reject | 3 | 98 thousand | 1 | — | — |
| 8 | apple.com | ▲ Spam folder | quarantine/reject | 2 | 283 thousand | 3 | Fortra Agari | — |
| 9 | instagram.com | ● Refused | reject/reject | 6 | 559 thousand | 17 | — | — |
| 10 | mail.ru | ● Refused | reject/reject | 1 | 348 thousand | 25 | Your own mailbox | testing |
| 11 | fbcdn.net | ✕ Delivered | none/none | 1 | 2 | 4 | — | — |
| 12 | ezviz7.com | ✕ No record | absent/absent | 1 | 80 | 1 | — | — |
| 13 | twitter.com | ● Refused | reject/reject | 4 | 104 thousand | 3 | — | — |
| 14 | domaincontrol.com | ✕ No record | absent/absent | 0 | 0 | 1 | — | — |
| 15 | dzen.ru | ▲ Spam folder | quarantine/quarantine | 1 | 15 thousand | 0 | Your own mailbox | — |
| 16 | linkedin.com | ● Refused | reject/reject | 2 | 924 | 2 | Fortra Agari | — |
| 17 | googlevideo.com | ✕ Delivered | none/none | 0 | 0 | 1 | — | — |
| 18 | googletagmanager.com | ● Sends none | reject/reject | 0 | 0 | 1 | — | — |
| 19 | office.com | ▲ Spam folder | quarantine/quarantine | 0 | 163 thousand | 1 | — | testing |
| 20 | live.com | ✕ Delivered | none/quarantine | 5 | 461 thousand | 1 | — | enforce |
| 21 | hicloudcam.com | ✕ Delivered | none/none | 6 | 12 thousand | 1 | — | — |
| 22 | amazon.com | ▲ Spam folder | quarantine/quarantine | 4 | 177 thousand | 3 | Your own mailbox | — |
| 23 | gtld-servers.net | ● Refused | reject/reject | 0 | 0 | 0 | Fortra Agari | — |
| 24 | azure.com | ▲ A name is open | reject/none | 2 | 0 | 1 | — | — |
| 25 | github.com | ▲ Spam folder | quarantine/reject | 10 | 932 thousand | 6 | Your own mailbox | — |
| 26 | wikipedia.org | ● Refused | reject/reject | 1 | 1,024 | 1 | — | — |
| 27 | appsflyersdk.com | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 28 | whatsapp.net | ✕ No record | absent/absent | 0 | 1 | 3 | — | — |
| 29 | bing.com | ● Refused | reject/reject | 1 | 459 thousand | 2 | — | — |
| 30 | apple-dns.net | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 31 | fastly.net | ▲ Spam folder | quarantine/quarantine | 0 | 0 | 2 | Valimail | — |
| 32 | aaplimg.com | ● Sends none | reject/reject | 0 | 0 | 1 | Fortra Agari | — |
| 33 | googleusercontent.com | ✕ Delivered | none/none | 1 | 98 thousand | 1 | — | — |
| 34 | doubleclick.net | ✕ Delivered | none/none | 1 | 5 | 1 | — | — |
| 35 | microsoftonline.com | ● Refused | reject/reject | 6 | 459 thousand | 2 | — | — |
| 36 | office.net | ✕ No record | absent/absent | 0 | 0 | 1 | — | — |
| 37 | cloud.microsoft | ● Sends none | reject/reject | 0 | 0 | 2 | — | — |
| 38 | netflix.com | ▲ A name is open | reject/reject | 7 | 344 thousand | 20 | Your own mailbox | — |
| 39 | sharepoint.com | ● Refused | reject/reject | 5 | 459 thousand | 1 | — | — |
| 40 | gandi.net | ✕ Delivered | none/none | 2 | 113 thousand | 7 | Your own mailbox | — |
| 41 | youtu.be | ● Refused | reject/reject | 3 | 112 thousand | 1 | — | — |
| 42 | digicert.com | ▲ Spam folder | quarantine/quarantine | 3 | 480 thousand | 2 | Valimail | — |
| 43 | wordpress.org | ▲ A name is open | reject/reject | 1 | 242 thousand | 2 | — | — |
| 44 | x.com | ● Refused | reject/reject | 6 | 261 thousand | 21 | — | — |
| 45 | skype.com | ▲ A name is open | reject/reject | 2 | 622 thousand | 2 | — | — |
| 46 | icloud.com | ▲ Spam folder | quarantine/quarantine | 4 | 280 thousand | 0 | Fortra Agari | — |
| 47 | tiktok.com | ● Refused | reject/reject | 5 | 171 thousand | 5 | — | — |
| 48 | whatsapp.com | ● Refused | reject/reject | 6 | 559 thousand | 11 | — | — |
| 49 | goo.gl | ● Sends none | reject/reject | 0 | 0 | 1 | — | — |
| 50 | pinterest.com | ● Refused | reject/reject | 3 | 98 thousand | 0 | — | — |
| 51 | googledomains.com | ✕ Delivered | none/none | 1 | 98 thousand | 1 | — | — |
| 52 | yahoo.com | ● Refused | reject/reject | 3 | 8,192 | 0 | Fortra Agari | testing |
| 53 | googlesyndication.com | ✕ Delivered | none/none | 1 | 98 thousand | 1 | — | — |
| 54 | roblox.com | ● Refused | reject/reject | 7 | 149 thousand | 2 | Valimail | — |
| 55 | gvt1.com | ● Sends none | reject/reject | 0 | 0 | 1 | — | — |
| 56 | pv-cdn.net | ● Sends none | reject/reject | 0 | 0 | 1 | — | — |
| 57 | spotify.com | ● Refused | reject/reject | 6 | 208 thousand | 1 | dmarcian | — |
| 58 | windows.net | ▲ A name is open | reject/reject | 0 | 0 | 2 | — | — |
| 59 | windowsupdate.com | ● Refused | reject/reject | 0 | 0 | 0 | — | — |
| 60 | wa.me | ✕ No record | absent/absent | 1 | 1 | 1 | — | — |
| 61 | adobe.com | ● Refused | reject/reject | 3 | 680 thousand | 6 | Fortra Agari | — |
| 62 | msn.com | ✕ Delivered | none/quarantine | 7 | 461 thousand | 1 | Fortra Agari | — |
| 63 | endpoints.news | ✕ Delivered | none/none | 4 | 101 thousand | 1 | Your own mailbox | — |
| 64 | ntp.org | ▲ Spam folder | quarantine/quarantine | 2 | 37 | 11 | dmarcian | — |
| 65 | qq.com | ▲ Spam folder | quarantine/quarantine | 8 | 1.2 million | 2 | Your own mailbox | — |
| 66 | zoom.us | ● Refused | reject/reject | 6 | 363 thousand | 5 | Proofpoint | — |
| 67 | root-servers.net | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 68 | nginx.org | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 69 | akam.net | ✕ No record | absent/absent | 0 | 0 | 1 | — | — |
| 70 | cloudflare-dns.com | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 71 | chatgpt.com | ● Refused | reject/reject | 1 | 8,192 | 1 | dmarcian | — |
| 72 | tiktokcdn.com | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 73 | tiktokv.com | ✕ No record | absent/absent | 0 | 0 | 1 | — | — |
| 74 | baidu.com | ▲ Spam folder | quarantine/quarantine | 4 | 3,717 | 1 | Your own mailbox | — |
| 75 | yandex.net | ✕ No record | absent/absent | 7 | 356 | 1 | — | — |
| 76 | cdninstagram.com | ✕ No record | absent/absent | 1 | 7 | 24 | — | — |
| 77 | openai.com | ● Refused | reject/reject | 7 | 604 thousand | 1 | dmarcian | — |
| 78 | gvt2.com | ● Sends none | reject/reject | 0 | 0 | 1 | — | — |
| 79 | vimeo.com | ● Refused | reject/reject | 4 | 47 thousand | 9 | Valimail | — |
| 80 | opera.com | ▲ A name is open | reject/reject | 2 | 631 thousand | 18 | — | — |
| 81 | f5.com | ▲ A name is open | reject/reject | 5 | 664 thousand | 5 | Valimail | enforce |
| 82 | ytimg.com | ● Refused | reject/reject | 0 | 0 | 1 | — | — |
| 83 | gwfb.net | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 84 | sentry.io | ● Refused | reject/reject | 5 | 387 thousand | 3 | Valimail | — |
| 85 | windows.com | ▲ A name is open | reject/reject | 1 | 163 thousand | 3 | — | — |
| 86 | nginx.com | ● Refused | reject/reject | 2 | 459 thousand | 3 | Valimail | — |
| 87 | samsung.com | ✕ Delivered | none/none | 1 | 768 | 1 | Your own mailbox | — |
| 88 | a2z.com | ▲ Spam folder | quarantine/quarantine | 5 | 177 thousand | 1 | — | — |
| 89 | highwebmedia.com | ▲ Spam folder | quarantine/quarantine | 1 | 98 thousand | 1 | Mimecast DMARC Analyzer | — |
| 90 | yandex.ru | ✕ Delivered | none/none | 7 | 356 | 0 | Your own mailbox | — |
| 91 | wordpress.com | ● Refused | reject/reject | 8 | 551 thousand | 1 | — | — |
| 92 | t.me | ● Sends none | reject/reject | 0 | 0 | 1 | — | — |
| 93 | mozilla.org | ● Refused | reject/reject | 7 | 102 thousand | 2 | Valimail | — |
| 94 | yuga.com | ● Refused | reject/reject | 2 | 164 thousand | 4 | DMARC Digests | — |
| 95 | dellemc.com | ● Refused | reject/reject | 1 | 0 | 28 | Proofpoint | — |
| 96 | actify.nl | ● Refused | reject/reject | 3 | 459 thousand | 2 | — | — |
| 97 | b-cdn.net | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 98 | reddit.com | ● Refused | reject/reject | 3 | 317 thousand | 1 | — | — |
| 99 | yccdn.ru | ✕ No record | absent/absent | 0 | 0 | 0 | — | — |
| 100 | ui.com | ▲ A name is open | reject/quarantine | 8 | 326 thousand | 1 | Your own mailbox | — |
What these numbers do not say
They are what each domain publishes, not what its mail does. A domain can name a sender it no longer uses, and sign with a key we did not find. The names under a domain come from certificate logs and the common names we try, up to fifty a domain.