DKIM for Google Workspace (Gmail): The Single-Selector TXT-Publication Model, Admin Console Workflow, Operator-Controlled 2048-bit Key Generation, Manual Rotation Cadence, and the gappssmtp.com Signing-Identity Gotcha
A focused operator-implementation walkthrough for DKIM on Google Workspace / Gmail. The Workspace DKIM model is structurally different from Microsoft 365, cPanel, and self-hosted DKIM: one TXT record per sending domain (google._domainkey containing v=DKIM1; k=rsa; p=<base64>) holds the public-key bytes directly, the operator generates the key via the Admin Console and publishes the resulting TXT, manual rotation is operator-driven with new-selector overlap, and the private key lives in Google infrastructure with operator-controlled lifecycle. Documents the single-selector TXT-publication architecture, the four-step deployment workflow (Generate new record, publish TXT, wait for DNS propagation, click Start authentication), three verification gates, manual rotation cadence, the gappssmtp.com signing-identity gotcha (the #1 Workspace DMARC failure mode), seven common mistakes, and a per-symptom troubleshooting decision matrix. Differentiation from sibling guides: help_dmarc_for_google_workspace.php covers DKIM as part of a broader rollout; this page is the DKIM-only operator reference. Side-by-side comparison with help_dkim_for_microsoft_365.php (CNAME-delegation dual-selector model).
This reference is provided in English. Google Workspace Admin Console UI labels (admin.google.com > Apps > Google Workspace > Gmail > Authenticate email > Generate new record > Start authentication), and DNS-record syntax (google._domainkey TXT, v=DKIM1, k=rsa, p=, c=relaxed/relaxed) do not translate. We keep the body in the source language so technical terms remain consistent with Google Workspace Help documentation and RFC 6376.
TL;DR
- Google Workspace DKIM uses
one TXT record per sending domain
at
google._domainkey.<your-domain>containing the public-key bytes directly (v=DKIM1; k=rsa; p=<base64>per RFC 6376 §3.6.2). Operators generate the key inside the Admin Console and publish the resulting TXT at their DNS provider. - Four steps: (1) generate
the key on the Admin Console
Authenticate email panel (admin.google.com
> Apps > Google Workspace > Gmail
> Authenticate email), (2) publish the
displayed TXT at
google._domainkey.<your-domain>, (3) wait 15 minutes to 48 hours for DNS propagation, (4) click Start authentication on the same Admin Console panel. - The #1 Workspace DKIM failure
mode: outbound mail signed under
<tenant>.gappssmtp.cominstead of your custom domain. Cause: the Start authentication step was skipped. Fix: verify the TXT resolves, then click Start authentication. - Single selector with manual
rotation: Workspace uses one selector
(
google._domainkeyby default) that the operator rotates manually via the Admin Console Generate new record button. Microsoft 365 uses a different model: two selectors published as CNAME records. - 2048-bit keys are today's baseline: RFC 8301 requires at least 1024 bits and recommends at least 2048. Legacy 1024-bit keys should be rotated to 2048-bit by generating a new key with DKIM key bit length: 2048 selected.
- Operator owns the key lifecycle: you decide when and how often to rotate, and you publish the new record in DNS. Annual rotation is a sensible baseline; rotate immediately after any suspected key-compromise event.
- Verification:
dig +short TXT google._domainkey.<your-domain>must return av=DKIM1; k=rsa; p=…record; Authentication-Results in delivered mail must showdkim=pass header.d=<your-domain>(NOTheader.d=<tenant>.gappssmtp.com). - DKIM alone does not stop spoofing; DKIM is one of two authentication signals DMARC consumes. Pair DKIM with SPF (see SPF for Google Workspace) and DMARC (see DMARC for Google Workspace) for end-to-end spoof-resistance.
What this guide covers
A focused operator-implementation walkthrough for DKIM on Google Workspace / Gmail-for-business tenants. Sibling pages cover the broader rollout (DMARC for Google Workspace walks the full SPF + DKIM + DMARC deployment), the protocol primer (DKIM explained), the canonicalization deep dive (DKIM canonicalization), the selector deep dive (DKIM selectors), and the replay-attack analysis (DKIM replay attacks). THIS page is the Workspace-specific operator reference: the single-selector TXT-publication model, the Admin Console workflow, operator-controlled 2048-bit key generation, manual rotation cadence, and the gappssmtp.com signing-identity failure mode.
The page is anchored against the Feb 2024 Google/Yahoo bulk-sender requirements: a domain sending more than 5000 messages per day to gmail.com or yahoo.com must have SPF and DKIM set up and must pass DMARC with alignment through SPF or DKIM. Without DKIM enabled for the custom domain (the most common Workspace misconfiguration), bulk mail from your Workspace tenant does not meet these requirements and may be junked or rejected by Google and Yahoo - exactly the same bulk-sender enforcement Google applies to all senders.
How Google Workspace DKIM works
Workspace DKIM is structurally different from Microsoft 365, cPanel, and self-hosted DKIM. Three architectural choices define it:
1. TXT publication (not CNAME delegation)
Workspace publishes a TXT record at
google._domainkey.<domain>
containing the public-key bytes directly per
RFC 6376 §3.6.2:
google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv..."
The Admin Console Generate new record
panel produces the full TXT value (often
spanning multiple 255-byte chunks joined per
RFC 1035 §3.3.14); the operator copies the
panel's displayed value verbatim into their
DNS provider. This contrasts with Microsoft
365's CNAME-delegation model where the actual
p= public key lives in
Microsoft's infrastructure under
<tenant>.onmicrosoft.com.
2. Single selector with manual rotation
Workspace uses ONE selector
(google._domainkey by default;
operators may pick a custom prefix when
generating a new key). Rotation is a manual
two-step process: generate a new key under a
new selector (e.g.,
google2024._domainkey), publish
the new TXT, then click Start
authentication using new key on the
Admin Console. The old selector TXT remains
published during transition so in-flight
messages signed under the previous selector
still verify; remove the old TXT 48-72 hours
after switching active signing.
3. Operator-controlled key custody
Workspace generates the key inside Google's infrastructure (the operator never sees the private-key bytes directly) but exposes the rotation controls to the operator. The operator decides when to rotate, which selector prefix to use, and which key size (1024-bit or 2048-bit on the Admin Console panel; pick 2048-bit whenever your DNS provider supports it - RFC 8301 recommends at least that). A new key only takes effect once the operator has published the new TXT record. In M365 the administrator also starts the rotation, but the new key appears behind the same CNAME records with no change in the domain's DNS. Tradeoff: in Workspace every rotation means a DNS change, in return for full control over how it runs.
Prerequisites
- An active Google Workspace tenant with at least one verified sending domain (the domain you want to DKIM-sign mail from). Verify the domain status at admin.google.com > Account > Domains > Manage domains.
- Administrative role assignment: Super Admin or a custom admin role with the Gmail privilege scope (the Authenticate email panel requires one of these roles).
- DNS administration rights at your sending domain's authoritative nameservers (to publish the TXT record the Admin Console generates).
- An SPF record already published with
include:_spf.google.com— see SPF for Google Workspace. SPF + DKIM together are the alignment prerequisite for DMARC enforcement. - A modern web browser to access the Admin
Console at
admin.google.com. The Authenticate email panel is UI-only; Workspace does not expose a Cloud-SDK or Admin-SDK command-line equivalent for DKIM management on this panel.
Step 1: Generate the DKIM key
Sign in to the Google Admin Console at
admin.google.com with a Super
Admin or Gmail-privileged account. Navigate to
Apps > Google Workspace > Gmail >
Authenticate email.
- From the Selected domain dropdown, pick your custom sending domain.
- Click Generate new record.
- In the dialog:
- DKIM key bit length: select 2048 (default; never pick 1024 for new keys).
- Prefix selector:
accept the default
googlefor your first key. For a rotation pick a new prefix (e.g.,google2024) so the old and new TXT records coexist during transition.
- Click Generate. Workspace generates the key pair, retaining the private key inside Google infrastructure and displaying the public-key TXT for the operator to publish.
The Admin Console now displays two values:
DNS Host name (TXT record name): google._domainkey
TXT record value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...
Leave this Admin Console panel open while publishing the TXT - you will return here for Step 3 (activation).
Step 2: Publish the TXT record
Publish the Admin-Console-displayed TXT at your authoritative DNS provider:
; Replace example.com with your sending domain.
; The TXT value is what the Admin Console displays - copy verbatim.
google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
Two publication notes specific to TXT records longer than 255 bytes:
The 255-byte TXT-chunk rule
RFC 1035 §3.3.14 limits each TXT character-string
to 255 bytes. A 2048-bit DKIM public key in
base64 encoding is approximately 400 bytes;
most DNS providers automatically chunk it into
multiple "..." "..." strings that
the receiver concatenates per RFC 6376 §3.6.2.2.
Verify chunking is correct:
$ dig +short TXT google._domainkey.example.com
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA" "v..."
In the dig output the two chunks appear
side by side as separate quoted strings; the verifier
joins them with nothing in between, so the split must
not add or drop a character (DNS providers handle the
chunking automatically when you paste the full Admin
Console value into a single TXT field).
DNS provider UIs
Each DNS provider has its own input form (Cloudflare, AWS Route 53, Azure DNS, GoDaddy, Namecheap, Google Cloud DNS, etc.). Three fields to fill in:
- Type: TXT
- Name / Host:
google._domainkey(some providers auto-append the apex domain; confirm the final FQDN isgoogle._domainkey.example.com) - Value: the full
v=DKIM1; k=rsa; p=…string from the Admin Console, including thev=DKIM1andk=rsaprefix.
Save the record. Wait 15 minutes to 48 hours for DNS propagation. Workspace's typical propagation window is 24-48 hours but a short-TTL provider may complete within minutes.
Step 3: Activate DKIM signing
Return to the Admin Console at Apps > Google Workspace > Gmail > Authenticate email. With your domain selected:
- Click Start authentication.
- Workspace performs a lookup to verify the TXT resolves at the expected name. If propagation is incomplete the panel displays an error - wait and retry.
- On success, the panel updates to Authenticating email with DKIM. From this moment Gmail signs outbound mail from the domain with the DKIM key.
The activation step is mandatory. Publishing
the TXT alone is NOT sufficient - until you
click Start authentication, Gmail
continues signing your outbound mail under
the default
<tenant>.gappssmtp.com
identity. See
the gappssmtp.com
section below for the consequences if
this step is skipped.
Verify DKIM signing is working
Three verification gates: DNS, Admin Console status, and end-to-end delivery.
Gate 1: DNS resolution
$ dig +short TXT google._domainkey.example.com
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
The TXT must resolve and contain a valid
v=DKIM1 record with a non-empty
p= public-key field. An empty
p= (i.e., v=DKIM1; k=rsa; p=)
means the key has been revoked: the verifier returns a
permanent error (key revoked, RFC 6376 §6.1.2).
You publish such a record yourself in DNS when you want
to retire a selector.
Gate 2: Admin Console status
In the Authenticate email panel, the domain must show Authenticating email with DKIM as its current status (not Not authenticating email or Starting).
Gate 3: End-to-end delivery
Send a message from the Workspace domain to
an external mailbox you control (a personal
Gmail or Yahoo account, Outlook.com, or
DMARC Analyzer's
Email Header Analyzer). Open the message
headers and locate the
Authentication-Results stack:
Authentication-Results: mx.google.com;
dkim=pass header.i=@example.com header.s=google header.b=AbCdEf12;
spf=pass (google.com: domain of admin@example.com designates ...)
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=example.com
Three requirements: (1)
dkim=pass, (2)
header.i=@example.com (your
custom domain, NOT
@<tenant>.gappssmtp.com),
(3) header.s=google (or
whichever custom selector prefix you chose).
If item 2 shows the
gappssmtp.com tenant domain,
return to the
gappssmtp.com section below.
DKIM key rotation on Google Workspace
Workspace operators rotate manually via the Admin Console, and every rotation requires publishing a new record in DNS. A sensible cadence for routine maintenance is annual rotation; rotate immediately after any suspected key-compromise event.
Four-step manual rotation
- Generate new key with new selector:
On the Admin Console Authenticate email
panel, click Generate new record.
Pick a NEW selector prefix
(e.g.,
google2024if your current selector isgoogle) so the old and new TXT can coexist during transition. - Publish the new TXT:
Add a new TXT record at
<new-selector>._domainkey.<your-domain>. Do NOT delete the existinggoogle._domainkeyTXT yet. - Switch active signing: After DNS propagation, return to the Admin Console and click Start authentication using new key. Workspace switches signing to the new selector; existing messages signed under the old selector continue to verify because the old TXT remains published.
- Retire the old TXT:
Wait 48-72 hours after switching active
signing (longer if your previous key's
TXT had a high TTL). Then remove the
old TXT at
google._domainkey.<your-domain>. In-flight messages signed under the retired selector that arrive after retirement will fail DKIM verification - the 48-72h window minimizes that population.
Selector-naming conventions
No fixed convention exists. Common patterns:
google→google2024→google2025(year-based rotation log)google→google2→google3(sequential rotation log)googlejan2024→googlejul2024(semi-annual rotation log)
The selector value is operator-internal -
receivers do not care what your selector is
named, only that the TXT resolves at the
name the s= tag identifies. Pick
a naming pattern that helps you track which
rotation generation a selector belongs to.
Key-size posture
Always pick 2048-bit RSA for new keys: RFC 8301 (Cryptographic Algorithm and Key Usage Update to DKIM) requires at least 1024 bits and recommends at least 2048. The Admin Console offers both 1024-bit and 2048-bit - according to Google's documentation the 1024-bit option is for domain hosts that do not support 2048-bit keys (usually because of TXT record length limits). 2048-bit is today's baseline and what receivers expect.
The gappssmtp.com signing-identity gotcha
The number-one Workspace DKIM failure mode: outbound
mail from example.com arrives at receivers
with header.d=<tenant>.gappssmtp.com
instead of header.d=example.com. The
DKIM-signing domain then does not align with the visible
From: header domain, so DMARC can rely on SPF only.
Why it happens
Workspace always signs SOMETHING. When DKIM
is not explicitly enabled for the custom
domain, Gmail falls back to signing under
<tenant>.gappssmtp.com
using a default DKIM key Workspace
automatically provisions at tenant creation.
The default key is real, valid, and signs
successfully - but its d= tag
points at the Workspace routing domain, not
at your custom domain.
Symptom in Authentication-Results
Authentication-Results: mx.example.net;
dkim=pass header.i=@tenant.gappssmtp.com header.s=20221208
spf=fail (example.net: domain of admin@example.com does not designate ...)
dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=example.com
Note: dkim=pass is True (signature verifies
cryptographically), but header.i is
@<tenant>.gappssmtp.com, not
@example.com. As long as SPF passes and
aligns, DMARC still passes; once SPF fails, for example
after a message is forwarded, nothing is left to carry
it. Aggregate DMARC reports surface this as
dkim=pass + spf=fail + dmarc=fail rows for
messages your Workspace tenant sent.
Symptom in Admin Console status
The Authenticate email panel shows the domain as Not authenticating email rather than Authenticating email with DKIM. Two sub-cases:
- Key never generated: the panel offers Generate new record but no published TXT exists. Run through the full four-step workflow above.
- Key generated and TXT published but Start authentication never clicked: the panel shows the displayed TXT value and an active Start authentication button. Click it.
The fix
One click: Start authentication in
the Admin Console (after confirming the TXT
resolves via dig +short TXT
google._domainkey.<your-domain>).
Seven common Google Workspace DKIM mistakes
- Publishing the TXT but never clicking Start authentication - the gappssmtp.com gotcha above. The Admin Console activation step is mandatory; the TXT alone does not flip Gmail to signing under your custom domain.
- Picking 1024-bit on the Admin Console generate panel without need - pick 2048-bit, as RFC 8301 recommends. The 1024-bit option is for DNS providers that do not support 2048-bit keys; if yours does, there is no reason to use it.
- Publishing the TXT at the wrong
name - the host must be
google._domainkey(the Workspace default selector), not_domainkey.google,google._domainkey.www,default._domainkey, or any other variation. If you picked a custom selector prefix during generation, the host is<your-prefix>._domainkey. - Deleting the old TXT before rotation completes - during rotation, both old and new selector TXTs must coexist for at least 48-72 hours after switching active signing so in-flight messages signed under the old selector still verify. Removing the old TXT too early breaks DKIM verification for those in-flight messages.
- Copying the TXT value without
the
v=DKIM1prefix - the Admin Console displays the full record includingv=DKIM1; k=rsa;. Some operators paste only thep=<base64>portion, producing a malformed TXT that receivers reject as not a DKIM record. - Setting an excessively-low TTL on the DKIM TXT - while a low TTL during initial rollout speeds DNS propagation, leaving the TTL at 300 or less in steady state shortens the rotation overlap window. Use TTL 3600 (1 hour) or 86400 (1 day) for the steady-state DKIM TXT after the initial rollout completes.
- Assuming DKIM stops spoofing on
its own - DKIM authenticates
that a specific signing domain produced
the message, but receivers do not enforce
on DKIM alone. DMARC is the enforcement
layer that consumes DKIM and SPF
verdicts. Without DMARC at
p=quarantineorp=reject, spoofed mail still delivers regardless of DKIM state.
Troubleshooting decision matrix
Map the observed symptom to the diagnostic next step:
- Symptom:
Authentication-Results shows
dkim=none.
Diagnosis: DKIM is not enabled for the sending domain. The Admin Console Authenticate email panel shows the domain as Not authenticating email; nogoogle._domainkeyTXT published.
Fix: Run through the four-step workflow (Generate, Publish, Activate, Verify) above. - Symptom:
Authentication-Results shows
dkim=passbutheader.i=@<tenant>.gappssmtp.comand DMARC fails.
Diagnosis: The gappssmtp.com gotcha. TXT may be published but Start authentication was never clicked.
Fix: Click Start authentication in the Admin Console. - Symptom:
Authentication-Results shows
dkim=fail (body hash mismatch).
Diagnosis: Message body was modified after signing - a forwarder, mailing list, or security gateway rewrote the body or added a footer. Workspace usesc=relaxed/relaxedcanonicalization, which tolerates whitespace and header-case changes but not body content modification.
Fix: For forwarders/gateways in your control, configure ARC sealing (see ARC explained); for upstream forwarders out of your control, accept the failure and rely on DMARC's relaxed-mode SPF + DKIM any-pass-wins alignment. - Symptom: Start
authentication button shows
Error: DKIM record not found.
Diagnosis: DNS propagation is incomplete.
Fix: Verify the TXT resolves from your local resolver (dig +short TXT google._domainkey.<your-domain>); wait the remaining propagation window; retry. - Symptom:
Authentication-Results shows
dkim=permerror (no key for signature).
Diagnosis: Thes=tag in the DKIM-Signature header references a selector whose TXT no longer exists. Common after rotation: the old TXT was removed before all in-flight messages signed under that selector were delivered.
Fix: Re-publish the retired TXT temporarily (Workspace archives the old key value, or re-generate from the operator records). Future rotations should wait the full 48-72h overlap window before retiring the old TXT. - Symptom: DKIM verifies
for messages sent from Gmail web UI but
fails for messages sent via SMTP
relay from a third-party application
through Workspace.
Diagnosis: Workspace's SMTP relay service has separate DKIM signing rules - it signs only for domains explicitly registered in the SMTP relay configuration.
Fix: At admin.google.com > Apps > Google Workspace > Gmail > Routing > SMTP relay service, verify the relay configuration includes your domain and DKIM signing is enabled for relayed traffic.
Frequently asked questions
- How do I enable DKIM on Google Workspace?
- Four steps. (1) Open the Google Admin Console (admin.google.com), navigate to Apps > Google Workspace > Gmail > Authenticate email. (2) Select your sending domain from the dropdown and click Generate new record, choosing DKIM key bit length 2048 and the default selector prefix google (the resulting record name is google._domainkey.<your-domain>). (3) Publish the displayed TXT record at your DNS provider: google._domainkey.<your-domain> TXT "v=DKIM1; k=rsa; p=<base64-public-key>" - copy the exact TXT value the Admin Console displays. (4) After DNS propagation (15 minutes to 48 hours), return to the same Admin Console panel and click Start authentication. From that moment Gmail signs outbound mail from your domain with DKIM-d=<your-domain> using the operator-controlled private key held inside Workspace.
- Why does Google Workspace use only one DKIM selector?
- Because the operator generates and controls the key, with manual rotation rather than automatic switching. Workspace uses one selector (google._domainkey by default, configurable on the Admin Console Generate new record panel) and one TXT record holding the public-key bytes directly per RFC 6376 §3.6.2. The operator clicks Generate new record to create a new key pair, then publishes the new TXT (typically under a new selector like google2024) and switches signing to the new selector on the Admin Console - manual two-step rotation. The Workspace single-selector design contrasts with Microsoft 365 DKIM, where each domain has two selectors (selector1 and selector2) published as CNAME records and the keys sit in Microsoft's infrastructure; rotation is started by the administrator there too, but needs no DNS change. The practical tradeoff in Workspace is operator control over the entire key lifecycle in exchange for publishing a new record at every rotation.
- What is the difference between Google Workspace DKIM and Microsoft 365 DKIM?
- Three structural differences. (1) Record type: Workspace publishes a TXT record at google._domainkey.<your-domain> containing the public-key bytes directly (v=DKIM1; k=rsa; p=<base64>); M365 publishes CNAMEs delegating to the tenant key material under <tenant>.onmicrosoft.com. (2) Selectors: Workspace uses ONE selector (google._domainkey) and the operator creates a new one at rotation; M365 uses TWO selectors (selector1 and selector2) and switches between them during a rotation. (3) Key publication: in Workspace a new public key reaches DNS only when the operator publishes a new TXT record; in M365 the new key appears behind the same CNAME record with no change in the domain's DNS. In both services the private key stays with the provider and the administrator starts the rotation. The practical consequence: a Workspace rotation requires a DNS change, an M365 rotation does not. Both produce RFC 6376 §3.6.2 compliant v=DKIM1 records that receivers verify identically.
- Why are my Google Workspace messages signed under gappssmtp.com instead of my custom domain?
- Because DKIM was never enabled for your custom domain in the Admin Console. Google Workspace always signs outbound mail with SOME DKIM key - the default is your tenant identity under <your-tenant>.gappssmtp.com (an automatically-provisioned Workspace key). Operators see this when DKIM verifies cryptographically (dkim=pass) but Authentication-Results shows header.i=@<tenant>.gappssmtp.com instead of header.i=@<your-custom-domain>. Such a signature does not align with the visible From: header domain, so DMARC can rely on SPF only and fails whenever SPF fails or does not align, for example after a message is forwarded. To get DKIM signing under your custom domain, you must (1) generate the DKIM key for your custom domain on the Admin Console Authenticate email panel, (2) publish the displayed TXT record at google._domainkey.<your-domain>, (3) wait for DNS propagation, then (4) click Start authentication in the Admin Console to flip the active signing identity. This is by far the #1 cause of DMARC failures on Workspace tenants.
- How do I rotate Google Workspace DKIM keys?
- A four-step manual rotation in the Admin Console. (1) Navigate to admin.google.com > Apps > Google Workspace > Gmail > Authenticate email, select your domain. (2) Click Generate new record, choose 2048-bit key length, and pick a NEW selector prefix (e.g., google2024 if your current selector is google) so the old and new TXT can coexist during the transition. (3) Publish the new TXT record at <new-selector>._domainkey.<your-domain> alongside the existing google._domainkey TXT - never delete the old TXT before the rotation completes. (4) On the same Admin Console panel, click Start authentication using new key. Wait at least 48-72 hours after switching active signing before removing the old TXT, so in-flight messages signed under the previous selector still verify at receivers whose DNS caches have not yet flushed. Rotation cadence: annually is the industry baseline; after any suspected key-compromise event rotate immediately.
- Why does my DKIM-Signature header still show gappssmtp.com after I generated a key for my custom domain?
- Most likely the Start authentication button in the Admin Console was never clicked, or DNS propagation is incomplete. Google Workspace falls back to signing with the gappssmtp.com tenant identity when (a) the google._domainkey TXT for your custom domain does not yet resolve from the public DNS, (b) the public-key TXT was published but the Admin Console Start authentication call never fired, or (c) the sender is mailing through a non-primary domain identity that has not been DKIM-enabled. Diagnose with three checks: dig +short TXT google._domainkey.<your-domain> must return a v=DKIM1 record with a non-empty p= public-key field; in the Admin Console the Authenticate email panel must show status DKIM authenticated for <your-domain>; the failing message DKIM-Signature header d= tag must match your custom domain. If all three pass, send a test message and inspect the Authentication-Results stack at a Gmail mailbox you own.
- Do I need a 2048-bit DKIM key on Google Workspace?
- Yes - 2048-bit is the current baseline. RFC 8301 (Cryptographic Algorithm and Key Usage Update to DKIM, 2018) requires RSA keys of at least 1024 bits and recommends at least 2048. Google's documentation says to select 2048 if your domain provider supports 2048-bit keys and notes that longer keys are more secure; the 1024 option is for domain hosts that do not support 2048-bit keys. Legacy Workspace tenants with 1024-bit keys should rotate to 2048-bit by generating a new key with the 2048 selection on the Admin Console panel. 1024-bit RSA keys are considered factorable by well-resourced attackers, and 2048-bit is what receivers expect from senders today. For new keys always pick 2048-bit.
- Can I bring my own DKIM key to Google Workspace?
- Not for native Gmail signing. The Workspace model generates the private key inside Google infrastructure and surfaces only the public-key TXT for the operator to publish - operators do not import an externally-generated key. Two workarounds exist: (a) for third-party senders relayed via Workspace (e.g., a marketing platform, transactional ESP, or security gateway that signs before relaying through Gmail), the upstream sender can sign with its own key and own d= signing domain; Gmail preserves DKIM-Signature headers it did not generate; (b) for full DKIM control over the d=<your-domain> identity, an organization must move outbound mail flow out of Gmail (custom MTA, third-party signing relay) - incompatible with native Workspace send. The pragmatic recommendation: keep native Gmail signing on google._domainkey with the Workspace-generated key, and rotate annually via the Admin Console.
Verify DKIM on your Google Workspace tenant now
DMARC Analyzer parses the daily aggregate
reports Google and other receivers send to
your rua= mailbox and surfaces
the per-sender DKIM verdict breakdown via
includes/DmarcParser.php —
catching the gappssmtp.com signing-identity
failure mode within hours of the first
misaligned message. Live DNS verification
for every DKIM selector 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.