Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

Dns And Deliverability

WordPress Mail Fails DKIM Even Though the Hosting Panel Says It Is Enabled

Trace DKIM failure when hosting says enabled by identifying the real sender, selector, authoritative DNS, signature domain and message modification.

A hosting panel can show DKIM enabled for its own mail service while WordPress sends through a different SMTP provider. DKIM passes only when the actual sender signs the message and the matching public key is published at authoritative DNS.

Read one delivered header to identify the signer before changing records.

Confirm whether a signature exists

Inspect the message’s DKIM-Signature and Authentication-Results headers. Record the signing domain (d=), selector (s=), result and provider message ID.

If no signature exists, DNS cannot create one after delivery; the sending service must be configured to sign. If a signature exists but fails, continue with selector, key and message-integrity checks.

Protect recipient and internal routing details when sharing the header.

Identify the real mail transport

Determine whether WordPress uses the local hosting mail server, external SMTP or a transactional API. A cPanel or Plesk DKIM switch normally controls mail sent by that server, not Microsoft 365, Google Workspace or another provider.

Check active mail plugins, constants and custom PHPMailer hooks. The test tool and real form may use different From addresses or even different transports.

Search the actual provider log for the controlled message.

Query the exact selector

The public key belongs at:

selector._domainkey.signing-domain.example

Replace both selector and domain with the s= and d= values from the message. Query authoritative DNS and compare the returned key with the sender’s current setup instructions.

Do not query a guessed default selector just because the hosting panel uses that name.

Check where DNS is authoritative

Review the domain’s nameservers. A DKIM key displayed in the hosting panel is ineffective when DNS is actually managed in Cloudflare or elsewhere.

Publish the provider’s public TXT or CNAME record exactly at the active DNS service. DNS interfaces may append the zone name automatically, so verify the final fully qualified hostname.

Never publish the private signing key or copy it between providers.

Look for stale or rotated keys

Providers rotate DKIM selectors or keys. The sender may sign with a new selector while DNS still contains only the old one, or a migration may restore obsolete values.

Keep old selectors only for the provider’s recommended overlap period, then remove unused records. Avoid combining two DKIM keys into one TXT value.

Allow for DNS TTL and provider verification before the retest.

Check signing-domain alignment

A valid provider signature can pass DKIM but fail DMARC if its d= domain does not align with the visible From. Configure a verified custom sending domain when the provider supports one.

Use a fixed authenticated From domain and put visitors in Reply-To. Do not switch From domains dynamically across public form fields.

Record DKIM pass and DMARC alignment as separate results.

Investigate message modification

DKIM can fail when a gateway, forwarding service or plugin modifies signed headers or body content in a way the signature did not permit. Compare provider acceptance evidence with the version received after forwarding.

Test direct delivery to a controlled mailbox before a distribution list or helpdesk. Avoid unnecessary post-signing footers and forwarding rewrites.

Do not weaken signing configuration until the modifying hop is identified.

Verify the full form route

After correcting sender signing or DNS, submit the real form with a new reference. Confirm the provider adds DKIM, the recipient reports dkim=pass, DMARC aligns and the message reaches the business mailbox.

Test visitor confirmations and other From domains separately. Document selector ownership so a future migration does not rely on the wrong panel.

Request urgent repair when multiple senders sign differently, the selector is unclear or forwarding breaks valid signatures. Share public DNS and redacted authentication results—never private keys or credentials.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident