4 Email authentication (SPF/DKIM/DMARC)
Email is easy to spoof. SPF, DKIM and DMARC exist to let the receiving server verify that mail claiming to come from your domain actually did, which is what stops an attacker spoofing your domain to your own staff and to your partners. This is mostly a one-time setup task in the DNS settings of your domain (see the air-gapped recovery kit, №57).
Visual explainer Why emails have three sender names, and what DMARC actually chains together
Documentation: About authentication methods
Caveats
- DMARC at p=none authenticates nothing — it only reports, and the control is not complete until p=quarantine or p=reject.
Setup steps
- open ↗
https://admin.google.com/ac/apps/gmail/authenticateemail · captured 2026-07-15
Apps › Google Workspace › Gmail › Authenticate email- Selector prefix
google- Key length
2048-bit
- open ↗
https://admin.google.com/ac/managedsettings/740348119625 · captured 2026-07-15
Apps › Google Workspace › Gmail › Authenticate emailTXT google._domainkey = <value from console> -
TXT @ = v=spf1 include:_spf.google.com ~all -
TXT _dmarc = v=DMARC1; p=none; rua=mailto:dmarc@<domain>; adkim=s; aspf=s
Ongoing maintenance
- automatable: AI agent Monthly: review DMARC aggregate (rua) reports for unexpected senders before tightening or after adding a SaaS mailer.
- requires a human When adding any sending service: update SPF without exceeding the 10-lookup limit.
How to verify
-
Go to https://www.learndmarc.com/ and send an email to see if everything is set up correctly.
-
Alternatively, if you know your way around a terminal: Check all three records directly from your machine:
```dig +short TXT <domain> | grep spf1; dig +short TXT google._domainkey.<domain>; dig +short TXT _dmarc.<domain>```
-
SPF must end in ~all or -all, the DKIM key must be 2048-bit, and DMARC must carry p=quarantine or p=reject with a rua= address that is monitored.
v0.2.0 Prevent edition All (DNS-side) policy #6 · #27 ↗