SPF include for SendGrid — SPF, DKIM, DMARC setup
SendGrid (Twilio) uses domain authentication rather than a bare SPF include: you publish three or four CNAMEs that point at SendGrid's servers, and the SPf record for whichever subdomain you use is theirs. This is one of the few cases where your domain's own SPF should still point at your mail host only — SendGrid's include is anchored at the subdomain's return path, not your root domain. Their docs walk through the CNAMEs and the automated SPF they manage on your behalf.
Records SendGrid, Twilio SendGrid needs
| Record | Value |
|---|---|
| SPF (managed by SendGrid via CNAMEs; root-domain SPF unchanged) | v=spf1 include:yourmailhost.com ~all |
| DKIM (3 CNAMEs: em### ._domainkey..., from SendGrid) | <CNAMEs from SendGrid's domain-authentication screen> |
| DMARC (TXT, host _dmarc) | v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com |
Replace the placeholder parts (such as yourdomain.com or a generated key) with your own values. DKIM keys and subdomain CNAMES are never copied from a web page — generate yours in your own provider's console.
Merging SPF when you send from more than one source
Only ONE SPF record may exist per domain. If mail goes out through more than one service, the record carries a single v=spf1, one include: per source, and one -all (or ~all) at the end:
v=spf1 include:provider-a.com include:provider-b.net ~all
Each include costs one lookup and nested includes cost more; over 10 lookups receivers return PermError and treat your mail as if SPF failed entirely.
The 10-lookup limit
SPF counts every include:, a, mx, ptr, exists: and redirect= against a limit of 10 DNS lookups — and nested includes count too. SendGrid, Twilio SendGrid's include is one lookup, but every merge pushes you closer to the cap. Our free checker counts for you; our USD 24 report gives you a flattened record that stays under the limit.
Official documentation
All links go to the provider's own docs; values in the table are examples, not copies of their pages.
Run your domain through the free checker before changing anything, so you know which records you already have.
Want the exact records for your domain?
For USD 24 we look up every TXT, CNAME and MX record your domain serves, count your SPF lookups, probe DKIM selectors, and write the exact records to paste — one SPF record, no PermError, DMARC at p=none with reporting — plus a free re-check after you apply them.