DMARC for Google Workspace: Complete Setup Guide (SPF, DKIM, Authenticate Email, Feb 2024 Bulk-Sender Requirements)
The operator deployment guide for DMARC on a Google Workspace tenant. Covers all five rollout phases — SPF with include:_spf.google.com, DKIM via Admin Console "Authenticate email" at the google._domainkey selector, DMARC at p=none with rua reporting, alignment fix-up for SaaS senders via CNAME-delegated DKIM, and advancement through p=quarantine to p=reject. Anchored against the Feb 2024 Google/Yahoo bulk-sender requirements that apply to any domain sending more than 5000 messages per day to gmail.com or yahoo.com.
This deployment guide is provided in English. Google Workspace Admin Console UI labels (Authenticate email, Apps > Google Workspace > Gmail) and DNS-record syntax (v=spf1 include:_spf.google.com -all, google._domainkey, v=DKIM1, v=DMARC1) do not translate. We keep the body in the source language so technical terms remain consistent with the Google documentation and the underlying RFCs.
TL;DR
- Google Workspace senders
need three DNS records: SPF
with
include:_spf.google.com, DKIM atgoogle._domainkey.<your-domain>(generated via Admin Console "Authenticate email"), and DMARC at_dmarc.<your-domain>starting atp=none. - Google's Feb 2024 bulk-sender
requirements demand working SPF and
DKIM with at least one of them aligned with the
From: header, DMARC at minimum
p=none(bulk senders strongly encouraged atp=quarantineor stronger), RFC 8058 one-click List-Unsubscribe, and Google Postmaster Tools spam-complaint rate under 0.3% for any domain sending >5000 messages/day to gmail.com or yahoo.com. - SPF record:
v=spf1 include:_spf.google.com ~allduring rollout, harden to-allin production. Add additionalinclude:for every third-party sender (SendGrid, Mailchimp, etc.) — stay under the 10-DNS-lookup limit. - DKIM workflow: Apps >
Google Workspace > Gmail >
Authenticate email. Generate a 2048-bit
key, publish the TXT record at
google._domainkey, wait 24-48h for DNS propagation, click "Start authentication" to enable signing. - DMARC rollout:
v=DMARC1; p=none; rua=mailto:dmarc-reports@your-domain.comfirst. Ingest reports for 2-6 weeks to inventory every sender. Advance top=quarantineonly after every legitimate sender is aligned. Never skip fromp=nonetop=reject. - Aligning SaaS senders
(the #1 alignment failure for Workspace
admins): enable DKIM with
d=your-domain.comin every SaaS provider's settings (most support CNAME-delegated subdomain selectors). SPF alignment usually requires a custom bounce-domain configuration in the SaaS provider. - Google Postmaster Tools (postmaster.google.com) is the receiver-side reputation + deliverability dashboard for your Workspace tenant's mail to Gmail. Set it up alongside DMARC — they answer complementary questions.
- DMARC Analyzer ingests
Google's daily aggregate reports via
includes/DmarcParser.phpand surfaces the per-sender / per-IP / per-day breakdown that drives the alignment fix-up phase.
1. What this guide covers
This is the operator-implementation walkthrough for deploying SPF, DKIM, and DMARC on a domain whose mail is sent by Google Workspace (formerly G Suite). It assumes you are the administrator of a Workspace tenant and have access to:
- The Google Workspace Admin Console (admin.google.com) — used to generate the DKIM key and enable outbound signing.
- Your domain's DNS provider (Cloudflare, Route 53, GoDaddy, etc.) — used to publish the SPF, DKIM, and DMARC TXT records.
- A working email mailbox on the domain to receive DMARC aggregate reports (or a third-party report-ingestion service — DMARC Analyzer is one option).
The guide is structured as five sequential deployment steps (SPF → DKIM → DMARC at p=none → alignment fix-up → enforcement) that mirror the canonical DMARC rollout with Google-Workspace- specific UI paths, syntax, and gotchas.
What this guide does not cover:
- Hosting DNS at Google Domains specifically — Google Domains was sold to Squarespace in 2023 and is no longer a Google product. Any DNS provider works.
- Receiving inbound mail for non-Workspace domains via Workspace's split delivery — a separate Workspace feature unrelated to outbound DMARC.
- Google's bulk-sender enforcement actions in detail — covered in section 2 and at support.google.com/mail/answer/81126.
2. Why DMARC matters now: the Feb 2024 bulk-sender requirements
In February 2024 Google (jointly with Yahoo) introduced sender requirements that apply to any domain sending more than 5000 messages per day to gmail.com or yahoo.com combined. The Feb 2024 cutover is the single largest DMARC-adoption driver in the industry to date and the proximate reason most Workspace administrators are revisiting email authentication in 2024-2025.
The five Feb 2024 requirements:
- SPF must be set up and pass for the sending domain (RFC 7208).
- DKIM must be set up and pass (RFC 6376). The domain in the visible From: header must also align with either the SPF domain or the DKIM domain — that is what DMARC identifier alignment requires; aligning both is good practice.
- DMARC TXT record published
with at minimum
p=none— and bulk senders are strongly encouraged to advance top=quarantineorp=rejectover time. - RFC 8058 one-click
List-Unsubscribe
(
List-Unsubscribe-Postheader +List-Unsubscribewith both amailto:and anhttps:URL) on every commercial / marketing message. - Spam complaint rate < 0.3% as measured by Google Postmaster Tools (with anything >0.1% as a yellow flag).
Bulk senders that fail one or more requirements have their mail delivered to spam at Gmail and Yahoo, or rejected entirely at the SMTP boundary. The 5000-messages-per-day threshold catches every commercial mailing-list operator, most B2B SaaS senders, and any organisation running marketing automation against the consumer-mailbox segment.
Even non-bulk senders below the 5000 threshold should publish DMARC for two reasons:
- Spoofing protection. Without DMARC, attackers can forge messages with your domain in the From: header from anywhere on the internet. Workspace's own SPF / DKIM on your outbound mail does nothing to stop a different sender at a different IP from spoofing your domain at another receiver. DMARC at enforcement is what closes that gap.
- Threshold drift. The 5000/day cutoff is the threshold today; Google's stated direction is universal enforcement. Deploying DMARC at p=quarantine now means you are not exposed when the threshold drops.
3. Prerequisites
- Google Workspace super-administrator role on the primary domain. DKIM generation lives under Apps > Google Workspace > Gmail > Authenticate email and requires super-admin privileges. A delegated admin with the "Gmail" delegated permission can also access this page.
- DNS edit access for the primary domain. You will publish three TXT records (SPF at apex, DKIM at google._domainkey, DMARC at _dmarc) and potentially more if you have additional sending sources.
- A monitored mailbox on
the domain (or a third-party DMARC report
ingestion service such as DMARC Analyzer).
Reports arrive as gzip-compressed XML
attachments — a typical setup uses a
dedicated address like
dmarc-reports@your-domain.com. - Inventory of every legitimate sender for the domain. Workspace is the obvious source, but the list usually also includes a marketing platform (Mailchimp, Klaviyo, Customer.io), a transactional relay (SendGrid, Mailgun, Amazon SES, Postmark), a CRM (Salesforce, HubSpot), helpdesk software (Zendesk, Intercom), and potentially shadow-IT senders only the reports will surface.
4. Step 1: Configure SPF with _spf.google.com
Publish a single SPF TXT record at the domain
apex (the root of your zone). Google Workspace
publishes its sender IPs at
_spf.google.com — a nested
include that resolves to the union of every
Workspace-side mail source (Gmail, Calendar
invitations, Apps Script, etc.). Google
updates the underlying IPs without operator
intervention.
Minimum record for a Workspace-only sender:
your-domain.com. IN TXT "v=spf1 include:_spf.google.com ~all"
Production record once SPF passes are clean
(note the -all hard fail):
your-domain.com. IN TXT "v=spf1 include:_spf.google.com -all"
If you also send via third-party providers,
add each provider's include: in
the same record (RFC 7208 §3.2 mandates a
single SPF record per domain — multiple
records cause a permerror):
your-domain.com. IN TXT "v=spf1 include:_spf.google.com include:sendgrid.net include:mailgun.org -all"
Watch the 10-DNS-lookup limit
(RFC 7208 §4.6.4). Every include:,
a:, mx:,
exists:, and redirect=
counts toward the limit, and nested includes
count for their full expansion. The DMARC
Analyzer
Domain Security
Checker reports the live lookup count
against any SPF record.
Verify the record with
dig +short txt your-domain.com
after publication, or via the
Domain Security
Checker.
5. Step 2: Configure DKIM via the "Authenticate email" feature
- Sign in to admin.google.com as a super-administrator.
- Navigate to Apps > Google Workspace > Gmail > Authenticate email. The shortcut URL is admin.google.com/ac/apps/gmail/authenticateemail.
- Select the primary domain from the domain dropdown. The "Generate new record" button appears.
- Click Generate new record. Accept the default 2048-bit key (the Admin Console UI also offers 1024-bit; 2048 is what RFC 8301 recommends and the only option that should be selected in production).
- The Admin Console displays a TXT record
to publish:
Copy the entire Value field — public keys for 2048-bit RSA are around 400 bytes of base64 and your DNS provider may need to split it into multiple character-quoted strings (most modern providers handle this automatically).Name: google._domainkey Type: TXT Value: v=DKIM1; k=rsa; p=<long-base64-public-key> - At your DNS provider, publish the record
with hostname
google._domainkey(the provider may append your domain automatically; the final FQDN isgoogle._domainkey.<your-domain>). - Wait 24-48 hours for DNS propagation. Most providers complete the change in minutes to a few hours; the Admin Console's "Start authentication" button will refuse to activate until Google can resolve the public key.
- Return to the Admin Console "Authenticate email" page and click Start authentication. Workspace begins DKIM-signing all outbound mail under your domain immediately.
- Verify by sending a test message to a
Gmail address you control, opening
Show original in Gmail,
and confirming the
Authentication-Resultsheader showsdkim=pass header.d=your-domain.com.
Key rotation: re-running
Generate new record creates a second selector
(typically google2._domainkey);
publish both selectors during the transition
window, then activate the new one and remove
the old. Workspace does not currently support
Ed25519 (RFC 8463) DKIM keys; RSA-2048 is
the production standard.
6. Step 3: Publish DMARC at p=none
With SPF + DKIM working, publish a DMARC TXT
record at _dmarc.<your-domain>:
_dmarc.your-domain.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@your-domain.com; fo=1"
Tags explained:
v=DMARC1— protocol version, always first.p=none— the reporting-only phase. Receivers will NOT change disposition based on DMARC outcomes; instead they will send daily aggregate reports describing every authentication result.rua=mailto:dmarc-reports@...— destination for daily aggregate (RUA) reports.fo=1— request a forensic (RUF) report on any DMARC failure (most major receivers including Google do not send forensic reports — see DMARC aggregate reports deep dive — but publishing fo=1 is the operator signal).
Confirm the record is live with
dig +short txt _dmarc.your-domain.com
or via DMARC Analyzer's
Domain Security
Checker.
Reports begin arriving within 24-48 hours. Google's reports arrive daily between 04:00 and 09:00 UTC. Other major receivers (Microsoft, Yahoo, Comcast) send on similar cadences. Forward the rua= mailbox into DMARC Analyzer (via IMAP, Graph, or manual upload through the dashboard) for parsing.
7. Step 4: Inventory legitimate senders and fix alignment
Read aggregate reports for 2-6 weeks. For each unique sending IP / sending domain combination, determine:
- Is this a legitimate sender? Workspace itself is obvious; the marketing platform you set up two years ago may not be.
- Is the sender aligned?
Either SPF must pass AND the envelope
MAIL FROM domain match your visible
From: header (organisational-domain
match for relaxed alignment), OR DKIM
must pass AND the
d=in the signature match your visible From: header. - If not aligned, what is the gap? Workspace mail aligns natively. SaaS senders almost always need a configuration change.
The #1 alignment failure for
Google Workspace senders is the SaaS-sender
case: a third-party service (SendGrid,
Mailgun, Customer.io, Mailchimp) sends on
your behalf with the From: header set to
marketing@your-domain.com but
the envelope MAIL FROM domain pointing at
the SaaS provider's bounce domain
(bounces.sendgrid.net, etc.).
SPF evaluates the bounce domain (passes)
but doesn't align with your visible From: —
DMARC fails.
Fix: enable DKIM signing with
d=your-domain.com in
each SaaS provider's settings. Most providers
let you publish a CNAME under a unique
subdomain (e.g.
em1234._domainkey.your-domain.com
CNAME →
em1234.sendgrid.net) that
delegates the DKIM key to the SaaS provider
while the signing domain stays under your
control. After CNAME publication and SaaS
activation, the next day's reports show
dkim=pass aligned with your
domain — DMARC passes.
Continue iterating until every legitimate sender shows in reports as DMARC-pass. Note that some senders may take a full week to surface (cron-driven monthly billing emails, one-off campaign sends).
8. Step 5: Advance from p=quarantine to p=reject
Once every legitimate sender is aligned,
advance the DMARC record to
p=quarantine:
_dmarc.your-domain.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@your-domain.com; fo=1"
Receivers begin delivering DMARC-failing mail
to spam. Continue monitoring reports for
unexpected failures. A common pattern: a
monthly cron job sends from an unaligned
legacy script the operator forgot about —
the first month at p=quarantine
surfaces it loudly.
After 1-3 months at
p=quarantine without unexpected
failures, advance to p=reject:
_dmarc.your-domain.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@your-domain.com; fo=1"
DMARC-failing mail is now bounced at the SMTP boundary. Spoofing of your domain at DMARC-honouring receivers is no longer possible. You have completed the rollout.
Never skip from p=none
to p=reject. The
p=quarantine intermediate phase
exists specifically so failed mail goes to
spam (recoverable) rather than bouncing
(unrecoverable). The single most common
self-inflicted email outage in DMARC
rollouts is skipping this phase. See the
DMARC
policy rollout deep dive for the full
rationale.
For granular ramping, use the
pct= tag: p=quarantine;
pct=5 applies the quarantine
disposition to 5% of failing mail, leaving
95% at p=none. RFC 7489 §6.3
defines the semantics; note that the
dmarcbis draft deprecates
pct= so this is a transitional
feature.
9. Google Workspace-specific gotchas
- Email aliases vs send-as
addresses. Workspace lets users
configure a send-as address from a
different domain (e.g. user
alice@your-domain.comsends asalice@your-other-domain.com). The From: header is rewritten but the DKIM signature is anchored to the Workspace-primary domain. If your-other-domain.com has DMARC atp=reject, these messages will fail. Either align both domains' DKIM under the same key, or use a Workspace secondary-domain configuration. - Multiple Workspace tenants
sharing a domain. Only one
Workspace tenant can own DKIM for a given
domain at a time — the selector
google._domainkeyis single-instance. If two tenants need to send for the same domain, only one of them can sign with the canonical selector; the other must rely on SPF alignment or a separate non-Workspace DKIM key. - Workspace Routing rules.
If you have Workspace Routing configured
to send certain mail through an
external smart host, that smart host
becomes a new sending source. The
Workspace DKIM signature may break if
the smart host modifies headers. Add an
SPF
include:for the smart host, configure DKIM on the smart host, and verify alignment in reports. - Gmail vacation auto-replies are sent from Workspace and carry the google DKIM signature like any normal message — but the envelope MAIL FROM is a Workspace-internal bounce domain. SPF alignment may fail for these; rely on DKIM alignment which works correctly.
- The default
google._domainkeyselector is the recommended choice, not the only one — the Admin Console lets you enter a different prefix selector when you generate the key. You need a different prefix when the domain already has a DKIM key under the prefix google, for example from another tenant or a relay.
10. Common Google Workspace + DMARC mistakes
- Clicking "Start authentication"
before DNS propagates. The
Admin Console rejects activation with
"Authentication unsuccessful" until
Google can resolve the published
google._domainkeyTXT record. Wait 24-48 hours after publication. - Publishing the DKIM key as a CNAME instead of a TXT. Google Workspace's DKIM record is a TXT — unlike Microsoft 365 which uses CNAME delegation. Confirm the record type at your DNS provider.
- Forgetting to advance past
p=none. The reporting-only phase does NOT stop spoofing. Advance to enforcement after 2-6 weeks of clean reports. - Generating a 1024-bit DKIM key. The Admin Console UI offers 1024 as an option; do not select it unless your DNS host cannot hold a longer record. RFC 8301 (2018) allows 1024 bits only as the minimum and recommends at least 2048.
- Two SPF records on the same
domain. RFC 7208 §3.2 mandates
a single SPF record. Merge multiple
records into one with concatenated
include:directives. - SPF over 10 DNS lookups.
Nested
include:chains commonly blow the limit. Use Domain Security Checker to count lookups and flatten or remove unused providers. - Skipping SaaS-sender
alignment. The marketing
platform that sends from
noreply@your-domain.comwithout DKIM-signing under your domain will fail DMARC even after Workspace is clean. Configure CNAME-delegated DKIM in every SaaS provider's settings. - Publishing DMARC at
p=rejectwithout alignment fix-up. The fastest path to a self-inflicted email outage. Always ingest reports atp=nonefor 2-6 weeks first. - Ignoring Google Postmaster Tools. Postmaster Tools and DMARC reports answer complementary questions: DMARC reports describe inbound spoofing at OTHER receivers, Postmaster Tools describes Workspace's own deliverability and reputation at Gmail. Both are free; set up both.
- Treating DMARC as one-time work. New SaaS deployments, partner integrations, and acquired domains constantly surface new senders. Indefinite monitoring is the ongoing cost of DMARC enforcement.
11. Troubleshooting
- "Authentication unsuccessful"
error on Start authentication.
Google cannot resolve your published
google._domainkey TXT record. Cause:
DNS hasn't propagated, the record is
published at the wrong host (e.g. at
the apex instead of
google._domainkey), or the Value field was truncated. Wait, verify withdig +short txt google._domainkey.your-domain.com, and republish if needed. - "My Workspace mail goes to spam at Gmail despite DMARC pass". DMARC pass does not guarantee inbox delivery — Gmail's content-based spam filter operates downstream. Check Google Postmaster Tools for the reputation signal and spam-complaint rate. Anything >0.1% in Postmaster Tools is a warning; >0.3% triggers spam-folder delivery regardless of DMARC.
- "DMARC reports show DKIM pass + SPF pass but DMARC fail". An alignment failure. The SPF-passing domain or DKIM-signing domain does not match the visible From: header. See DMARC alignment explained for the deep dive — the SaaS-sender CNAME delegation pattern is the canonical fix.
- "My SPF record is failing with permerror". Almost always the 10-DNS-lookup limit. Run Domain Security Checker to see the live count.
- "DKIM signature fails on some receivers but passes at Gmail". Usually a canonicalization mismatch or a header-modifying intermediate (mailing-list software, security gateway). Inspect the message at the downstream receiver via the Email Header Analyzer.
- "No DMARC reports arriving". Common causes: the rua= mailbox itself fails DMARC (the records haven't propagated long enough yet, or the mailbox is on a different domain without cross-domain authorisation), the mailbox spam filter is flagging reports as bulk mail, or the report-receiver-side mail-flow is broken. See DMARC aggregate reports deep dive.
- "How do I see my outbound DKIM
signature in Workspace?" Send
a test message to a Gmail address you
control. Open the message, click the
three-dot menu, and choose Show
original. The
Authentication-Results header shows
dkim=pass header.d=your-domain.comwhen signing is working.
12. Frequently asked questions
- How do I set up DMARC for Google Workspace?
-
Five steps. Publish SPF at the domain
apex with
include:_spf.google.com. Generate a 2048-bit DKIM key via Admin Console > Apps > Google Workspace > Gmail > Authenticate email and publish the resulting TXT record atgoogle._domainkey. Publish DMARC at_dmarcstarting atp=nonewith arua=mailbox. Ingest reports for 2-6 weeks to align every legitimate sender. Advance throughp=quarantinetop=reject. - What is the Google Workspace SPF include?
-
include:_spf.google.com. Minimum record:v=spf1 include:_spf.google.com ~all; production:v=spf1 include:_spf.google.com -all. Stay under the 10-DNS-lookup limit when adding third-party senders. - What DKIM selector does Google Workspace use?
-
google. The TXT record lives atgoogle._domainkey.<your-domain>. A different prefix selector can be entered when the key is generated. - What are Google's Feb 2024 bulk sender requirements?
-
For domains sending >5000
messages/day to gmail.com or yahoo.com:
working SPF + DKIM with at least one of them
aligned with From:, DMARC at
minimum
p=none, RFC 8058 one-click List-Unsubscribe, and spam complaint rate < 0.3% in Postmaster Tools. Failure to comply causes spam-folder delivery or SMTP rejection. - How long does Google Workspace DKIM setup take to propagate?
- Typically 24-48 hours, though many DNS providers complete the change in minutes to a few hours. The Admin Console "Start authentication" button refuses to activate until Google can resolve the published key.
- Why is my DMARC failing despite SPF and DKIM passing on Google Workspace?
-
Alignment failure. SPF or DKIM passes
on a domain different from your visible
From: header — typically a SaaS sender
using its own bounce domain.
Fix by enabling DKIM with
d=your-domain.comin the SaaS provider, most commonly via CNAME-delegated subdomain selectors. - Do I need DMARC if I only use Google Workspace?
- Yes. Workspace's outbound authentication does not stop attackers from spoofing your domain at other receivers — DMARC at enforcement is what closes that gap. The Feb 2024 bulk-sender requirements additionally demand DMARC for any high-volume Workspace tenant.
- Where do I see DMARC reports for Google Workspace mail?
-
Receivers (Google, Microsoft, Yahoo,
and others) send daily aggregate reports
to the
rua=mailbox in your DMARC record. DMARC Analyzer ingests these viaincludes/DmarcParser.phpand surfaces the per-sender breakdown. Google Postmaster Tools at postmaster.google.com is a separate sender-side dashboard for outbound reputation at Gmail.
Deploy DMARC for your Google Workspace tenant now
DMARC Analyzer parses the daily aggregate
reports Google and other receivers send to
your rua= mailbox, deduplicates
by report_id +
org_name, and surfaces the
per-sender / per-IP / per-day breakdown
needed to drive the alignment fix-up phase.
Live DNS verification for every SPF / DKIM
/ DMARC record on your domain runs through
includes/DnsChecker.php; the
Email Header
Analyzer at
header_analyzer.php diagnoses
individual message failures by parsing the
full Authentication-Results stack via
includes/EmailHeaderParser.php.