The exact SPF record
Copy the example that matches your setup. Each one is a single TXT record; the host is shown as your DNS provider usually expects it (@ means the domain itself).
Standard sending: your main domain on Microsoft 365 stays as it is
Type: TXT · Host: @ · 1 of 10 DNS lookups
v=spf1 include:spf.protection.outlook.com -all
Dedicated IP with Google Workspace (Brevo's merge example)
Type: TXT · Host: @ · 3 of 10 DNS lookups
v=spf1 include:_spf.google.com include:spf.brevo.com mx ~all
Use the exact value Brevo shows in your account. The mx term is part of Brevo's example record.
How SPF applies to Brevo mail
Brevo sends with a bounce (MAIL FROM) address on a domain it manages, so receivers check SPF there, not on your domain. You don't add anything to your SPF record for it; your domain is authenticated with DKIM instead. The exception is a dedicated IP: Brevo then provides an SPF record for your domain, such as the include:spf.brevo.com merge example above.
- Brevo's branded subdomain links to Brevo's infrastructure with a CNAME for SPF and the return path, which Brevo says enables full SPF alignment on your sending domain.
- Brevo says a domain can only have one SPF record and gives a merge example; check the result with an SPF checker.
How to add it
- In Brevo, open the Domains settings and add your domain.
- Publish the records Brevo shows: the Brevo code (TXT), the DKIM records and a DMARC record.
- If you use Brevo's branded subdomain, also add the branded CNAME record: Brevo uses it for SPF and the return path.
- Only with a dedicated IP: add the SPF value Brevo gives you to your existing SPF record, merging it into one record.
DKIM and DMARC alignment
Brevo's domain authentication is built on DKIM and DMARC: DKIM signs with your domain, so it aligns with your From address. Brevo says your domain should have only one DMARC record.
DMARC passes when SPF or DKIM passes and the domain it checked matches your From domain. Our guide to SPF, DKIM and DMARC explains how the three fit together.
Common mistakes
- Two SPF records. A domain may publish only one record that starts with
v=spf1. With two, receivers return a permanent error and SPF fails for all your mail (RFC 7208 section 3.2). Merge every sender into one record. - More than 10 DNS lookups. Each
include,a,mx,existsandredirectcosts a lookup, nested ones included; over 10 is a PermError (section 4.6.4). Brevo adds nothing to your count, which is one more reason not to add an include for it. See how to fix too many SPF lookups. - Choosing
~allor-allwithout a plan. Brevo's documentation uses~all.-allasks receivers to reject unlisted servers;~allasks them to accept but mark the mail. Once DMARC is enforced, receivers act on DMARC instead. Read SPF soft fail vs hard fail before you choose. - Adding
include:spf.brevo.comwhen you don't have a dedicated IP. Brevo doesn't need it for standard authentication. - Publishing Brevo's SPF value as a second record instead of merging it into the existing one.
Check your SPF record
See your live record, every nested include and the real lookup count. Free, reads public DNS only.
Building a record for your other senders? Use the SPF Record Generator.
Frequently asked questions
Do I need an SPF record for Brevo?
Not for standard sending. Brevo says SPF and MX records aren't required to authenticate a domain and are only provided when you set up a dedicated IP. Authentication uses a Brevo code, DKIM and DMARC.
What is Brevo's SPF include?
Brevo's merge example uses include:spf.brevo.com, together with an mx term: v=spf1 include:_spf.google.com include:spf.brevo.com mx ~all for a domain that also uses Google Workspace. Copy the exact value from your Brevo account.
How do I merge Brevo's SPF record with my existing one?
Keep one v=spf1 at the start, put every include and mechanism from both records in the middle, and end with a single all. Then check the result with the SPF Checker.
Sources
- Brevo Help: Authenticate your domain with Brevo (Brevo code, DKIM, DMARC)
- Brevo Help: Merge multiple SPF records
- Brevo Help: Set up your domain in Brevo
- RFC 7208: Sender Policy Framework (SPF)
Values checked against Brevo's documentation on October 9, 2026. Lookup counts measured with our SPF Checker on October 9, 2026; providers change their records, so check yours before relying on a number.
SPF records for other providers
- Microsoft 365include:spf.protection.outlook.com
- Google Workspaceinclude:_spf.google.com
- Zoho Mailinclude:zoho.com
- GoDaddyinclude:secureserver.net
- Fastmailinclude:spf.messagingengine.com
- Proton Mailinclude:_spf.protonmail.ch
- Amazon SESinclude:amazonses.com
- SendGridinclude:sendgrid.net
- Mailguninclude:mailgun.org
- PostmarkNone needed
- MailchimpNone needed
- HubSpotAccount-specific (copy from HubSpot)
- KlaviyoNone needed
- Salesforceinclude:_spf.salesforce.com
- Zendeskinclude:mail.zendesk.com
- Freshdeskinclude:email.freshdesk.com
- IntercomNone needed
Related guides
SPF record syntax and examples
SPF record syntax explained: mechanisms, qualifiers and modifiers, with copy-ready examples for Microsoft 365, Google Workspace, subdomains and parked domains.
9 min read SPF, DKIM & DMARCHow to fix SPF PermError: too many DNS lookups
Why SPF breaks at 10 DNS lookups, how to count them, and step-by-step fixes for Microsoft 365 and Google Workspace domains with many senders.
8 min read SPF, DKIM & DMARCSPF softfail vs hardfail: should you use ~all or -all?
What ~all, -all and ?all mean in SPF, what receivers really do with each, how DMARC changes the choice, and which one to use for sending and parked domains.
8 min readLast updated