SPF, DKIM, DMARC and BIMI Setup for Marketers (2026)
Set up SPF, DKIM, DMARC and BIMI step by step: alignment, the 10-lookup limit, moving from p=none to reject, RFC 9989 changes and BIMI logos.
Email authentication proves your mail really comes from your domain. SPF lists the servers allowed to send for a domain, DKIM signs each message with a key published in DNS, and DMARC tells receivers what to do when neither SPF nor DKIM passes in alignment with the visible From domain, and sends you reports. Gmail, Yahoo and Microsoft require bulk senders to have SPF, DKIM and a DMARC record of at least p=none with alignment. Set up DKIM with your own domain in every sending tool, keep SPF under ten DNS lookups, collect DMARC reports, then move to p=quarantine and p=reject. BIMI then shows your logo in supporting inboxes once DMARC is enforced.
- Every tool that sends as your domain needs custom DKIM on your domain, not the vendor's.
- SPF fails with more than ten DNS lookups. Flatten or split by subdomain.
- DMARC p=none is the minimum for bulk senders. Aim for p=reject once reports are clean.
- DMARC is now RFC 9989 (May 2026). Stop relying on pct; use np= for non-existent subdomains.
- BIMI needs DMARC at quarantine or reject, an SVG Tiny PS logo and, for Gmail, a VMC or CMC.
Checked 5 November 2026 (CET) against Gmail's sender guidelines and BIMI help, Microsoft's Outlook.com postmaster policies, RFC 7208 (SPF), RFC 6376 (DKIM), RFC 9989 (DMARC) and the dmarc.org announcement cited in Sources. DNS syntax varies slightly by host. Ledgerline is a fictional company used for illustration.
01How do SPF, DKIM and DMARC fit together?
| Standard | What it checks | Where it lives | Fails when |
|---|---|---|---|
| SPF | Is the sending IP allowed for the envelope sender (Return-Path) domain? | TXT record on that domain | IP not listed, or more than 10 DNS lookups |
| DKIM | Was the message signed by a key for the d= domain, and unchanged? | TXT or CNAME at selector._domainkey.domain | Key missing, wrong, or message altered |
| DMARC | Does SPF or DKIM pass and align with the From domain? | TXT at _dmarc.domain | Neither aligned SPF nor aligned DKIM passes |
| BIMI | Should the receiver show your logo? | TXT at default._bimi.domain | DMARC not enforced, logo or certificate invalid |
Alignment is the part marketers miss. If your ESP sends with a Return-Path on bounce.esp.example and signs DKIM with d=esp.example, SPF and DKIM can both "pass" while DMARC fails, because neither matches your From domain news.yourbrand.example. Fix it by setting a custom return-path (bounce domain) and custom DKIM on your domain in the ESP.
02How do you set up SPF?
- Inventory every sender: ESP, CRM sequences, support desk, billing, product notifications, Google Workspace or Microsoft 365, outbound tools.
- Decide subdomains. Put each major sender on its own subdomain where possible. Each subdomain gets its own SPF record, which keeps you under the lookup limit.
- Write one record per domain. Only one SPF TXT record is allowed per name.
news.ledgerline.example. TXT "v=spf1 include:spf.esp-provider.example -all"
ledgerline.example. TXT "v=spf1 include:_spf.google.com -all"- Count lookups. Each
include,a,mx,ptr,existsandredirectcosts a lookup, including nested ones. More than ten is a permanent error. Use an SPF checker to count. - Choose the ending.
-all(fail) or~all(softfail). With DMARC in place,~allis common and safe;-allis stricter.
Note: with most ESPs, SPF is checked on the bounce domain, so you add the ESP's include to that custom return-path subdomain, often via a CNAME the ESP gives you.
03How do you set up DKIM?
- In each sending tool, find "domain authentication" or "custom DKIM".
- Publish the records it gives you, usually two CNAMEs (so the vendor can rotate keys) or a TXT with the public key.
- Use 2048-bit keys where the vendor allows.
- Verify in the tool, then send a test to a Gmail account and open "Show original": look for
DKIM: 'PASS' with domain news.ledgerline.example. - Rotate keys at least yearly if you manage them yourself.
04How do you roll out DMARC?
Step 1: publish monitoring
_dmarc.ledgerline.example. TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@ledgerline.example"Use a DMARC report processor (many offer free tiers) rather than reading XML by hand. Collect at least two to four weeks of reports covering a full monthly cycle of invoices, newsletters and campaigns.
Step 2: fix every legitimate source
For each source in the reports, confirm aligned SPF or DKIM passes. Common culprits: the old CRM, a webinar tool, a survey tool, a billing system, and a sales rep's personal sequencing tool.
Step 3: enforce
_dmarc.ledgerline.example. TXT "v=DMARC1; p=quarantine; sp=quarantine; np=reject; rua=mailto:dmarc-reports@ledgerline.example"Then, after a clean period:
_dmarc.ledgerline.example. TXT "v=DMARC1; p=reject; sp=reject; np=reject; rua=mailto:dmarc-reports@ledgerline.example"| Tag | Meaning | Note in 2026 |
|---|---|---|
| p | Policy for the domain | none, quarantine or reject |
| sp | Policy for existing subdomains | Defaults to p |
| np | Policy for non-existent subdomains | New in RFC 9989; reject stops spoofing of made-up subdomains |
| rua | Where aggregate reports go | Reports defined in RFC 9990 |
| adkim, aspf | Alignment mode | r (relaxed, default) or s (strict) |
| pct | Percentage to apply policy to | Deprecated in RFC 9989; leave it out or keep 100 |
What changed in RFC 9989?
DMARC was republished in May 2026 as RFC 9989, with aggregate reporting in RFC 9990 and failure reporting in RFC 9991, replacing RFC 7489. Practical points for marketers:
pct,rfandriare deprecated. Gradual rollout by percentage is no longer part of the standard; move policies in steps instead.np=lets you reject mail from subdomains that do not exist.- Organisational domain discovery uses a DNS tree walk instead of the Public Suffix List. This rarely changes anything for a normal company domain.
- Existing valid records keep working.
05How do you set up BIMI?
BIMI shows your logo next to your messages in supporting clients such as Gmail, Yahoo and Apple Mail.
- Enforce DMARC at p=quarantine or p=reject for the organisational domain and the sending subdomain. Google's BIMI help still refers to pct=100; under RFC 9989, omit pct or keep it at 100.
- Prepare the logo as SVG Tiny Portable/Secure (SVG Tiny PS), square, centred, solid background.
- Get a certificate for Gmail: a VMC (requires a registered trademark, shows a blue checkmark) or a CMC (no trademark needed, logo shown without a checkmark).
- Publish the record:
default._bimi.ledgerline.example. TXT "v=BIMI1; l=https://ledgerline.example/bimi/logo.svg; a=https://ledgerline.example/bimi/vmc.pem"- Wait and check. Display depends on reputation and volume as well as the record.
06Worked example: Ledgerline
Ledgerline is a fictional accounts-payable software company. Figures are illustrative, not benchmarks.
Ledgerline's root domain has an SPF record with 13 lookups and no DMARC record. Gmail shows "via esp-provider.example" on newsletters.
Walkthrough
- Inventory: seven senders found, including a forgotten survey tool.
- Split by subdomain:
news.for the ESP,app.for product mail, root for Google Workspace only. Root SPF drops to 4 lookups. - Custom DKIM and return-path set up in the ESP and product mail service. "via" disappears.
- DMARC p=none with a report processor for four weeks. The survey tool fails alignment and is moved to authenticated sending.
- Quarantine, then reject over the following six weeks, with
np=rejectfrom day one. - BIMI with a CMC because the trademark registration is still pending.
07Common mistakes
- Two SPF records on one name.
- Vendor DKIM (
d=vendor.example) instead of your domain. - Staying at p=none forever.
- Forgetting subdomains and non-existent subdomains.
- Publishing BIMI before DMARC is enforced.
08Try it yourself
Send yourself a test from every tool that emails as your domain. In Gmail, open "Show original" and record SPF, DKIM and DMARC results and the domains. Build a table: tool, Return-Path domain, DKIM d= domain, aligned (yes or no).
09Quick quiz
1. What makes DMARC pass? Answer: SPF or DKIM passes and its domain aligns with the From domain.
2. What is the SPF lookup limit? Answer: Ten DNS lookups.
3. Which DMARC tag is deprecated in RFC 9989? Answer: pct (also rf and ri).
4. What does BIMI need before it works? Answer: DMARC at quarantine or reject, an SVG Tiny PS logo and, for Gmail, a VMC or CMC.
10What should you check before the next lesson?
- Every sender has custom DKIM and an aligned return-path.
- SPF is under ten lookups per domain.
- DMARC is published with reports going to a processor.
- You have a date for moving to quarantine.
Previous: Email compliance: GDPR, PECR, CAN-SPAM and CASL · Next: Gmail, Yahoo and Outlook sender requirements
Or return to the Email Marketing for Marketers track.
Related: Postmaster Tools v2 and deliverability monitoring · Domain warm-up and list hygiene · Cold outbound email done compliantly
11Common questions
What DMARC policy do Gmail and Outlook require? Bulk senders need a DMARC record with at least p=none, and the From domain must align with SPF or DKIM. Stronger policies (quarantine or reject) are recommended and required for BIMI.
What is DMARC alignment? Alignment means the domain in the visible From address matches the domain authenticated by SPF (the envelope sender) or DKIM (the d= signing domain). Relaxed alignment allows subdomains of the same organisational domain.
What changed with RFC 9989? DMARC was republished as RFC 9989 in May 2026, replacing RFC 7489. The pct, rf and ri tags are deprecated, an np tag for non-existent subdomains is added, and organisational domains are found by a DNS tree walk instead of the Public Suffix List.
Do I need a VMC for BIMI in Gmail? A Verified Mark Certificate shows your logo with a blue checkmark and needs a registered trademark. A Common Mark Certificate shows the logo without the checkmark and does not need a trademark.
Questions people ask
4 answersWhat DMARC policy do Gmail and Outlook require?
+
Bulk senders need a DMARC record with at least p=none, and the From domain must align with SPF or DKIM. Stronger policies (quarantine or reject) are recommended and required for BIMI.
What is DMARC alignment?
+
Alignment means the domain in the visible From address matches the domain authenticated by SPF (the envelope sender) or DKIM (the d= signing domain). Relaxed alignment allows subdomains of the same organisational domain.
What changed with RFC 9989?
+
DMARC was republished as RFC 9989 in May 2026, replacing RFC 7489. The pct, rf and ri tags are deprecated, an np tag for non-existent subdomains is added, and organisational domains are found by a DNS tree walk instead of the Public Suffix List.
Do I need a VMC for BIMI in Gmail?
+
A Verified Mark Certificate shows your logo with a blue checkmark and needs a registered trademark. A Common Mark Certificate shows the logo without the checkmark and does not need a trademark.
Sources
- Gmail Help, Email sender guidelinessupport.google.com
- Gmail Help, Set up BIMIsupport.google.com
- Microsoft, Outlook.com postmaster policiespostmaster.outlook.com
- RFC Editor, RFC 7208: SPFrfc-editor.org
- RFC Editor, RFC 6376: DKIMrfc-editor.org
- RFC Editor, RFC 9989: DMARCrfc-editor.org
- dmarc.org, DMARCbis publisheddmarc.org
- All accessed 5 Nov 2026.