Teaser only. This is not the full article. Complete SPF syntax reference with M365 and Google templates: SPF Record Syntax: Complete Reference
You paste include:sendgrid.net into an already crowded TXT record. Syntax looks valid. Receivers return permerror.
SPF is one string starting with v=spf1, mechanisms evaluated left to right, and a hard stop at ten DNS lookups. Most production failures are not typos. They are lookup overflow, duplicate SPF TXT records, or a missing -all.
Sanity check before any edit:
dig example.com TXT +short
Count includes toward the cap. End production senders with -all, not ~all left over from a migration.
In the full post on zerohook.org:
- Every mechanism and qualifier explained
- Lookup limit math with nested includes
- M365, Google Workspace, and ESP patterns
- PermError and softfail troubleshooting
Read the full guide: SPF Record Syntax: Complete Reference
Top comments (0)