DMARC for cPanel & Shared Hosting: Complete Setup Guide (Email Deliverability page, default._domainkey DKIM, Provider-Specific SPF Includes, Feb 2024 Bulk-Sender Requirements)
The operator deployment guide for DMARC on a cPanel-hosted domain - whether you run end-user cPanel on shared hosting (Bluehost, HostGator, SiteGround, A2 Hosting, GoDaddy, Namecheap Stellar, Hostinger, InMotion, DreamHost) or WHM on a VPS / dedicated server. Covers all five rollout phases - verify cPanel's auto-generated SPF and DKIM on the Email Deliverability page, publish DMARC manually at p=none via the Zone Editor, inventory every legitimate sender, advance to p=quarantine then p=reject, and resolve the cPanel-specific gotchas: provider-specific SPF includes, the default._domainkey selector convention, manual key rotation on Exim, and shared-IP reputation as the deliverability ceiling. Anchored against the Feb 2024 Google/Yahoo bulk-sender requirements that apply to every sender regardless of hosting platform.
This deployment guide is provided in English. cPanel and WHM UI labels (Email > Email Deliverability, Email > Zone Editor, Email > Track Delivery, WHM > Exim Configuration Manager, WHM > Edit DNS Zone) and DNS-record syntax (v=spf1, default._domainkey TXT, v=DMARC1; p=none; rua=mailto:) do not translate. We keep the body in the source language so technical terms remain consistent with the cPanel documentation and the underlying RFCs.
TL;DR
- cPanel auto-generates SPF and DKIM during account creation. Open the Email Deliverability page in cPanel (under the Email section), verify both records, and click Install Suggested Record if either shows a warning status.
- cPanel does NOT auto-generate
DMARC. You must publish it
manually as a TXT record at
_dmarc.<your-domain>via the cPanel Zone Editor (or your registrar's DNS panel if DNS is hosted elsewhere). Start atp=none. - Default DKIM selector:
cPanel uses
default._domainkeyby convention - distinct from Google Workspace (google._domainkey) and Microsoft 365 (selector1+selector2CNAMEs). Key rotation is MANUAL on cPanel; plan one every 6-12 months. - SPF include is provider-specific. Bluehost, HostGator, SiteGround, A2 Hosting, GoDaddy cPanel, Namecheap each publish their own outbound mail infrastructure under a different include directive. Use cPanel's Install Suggested Record button to apply the correct one for your host.
- Shared-IP reputation is the deliverability ceiling. cPanel shared hosting puts your outbound mail on an IP shared with potentially hundreds of other tenants. A sibling tenant's spam can poison the shared IP's reputation and send YOUR legitimate mail to spam at Gmail / Outlook - DMARC does not compensate. For commercial-scale or bulk-sending workloads, move to a dedicated outbound IP or a transactional relay.
- Google's Feb 2024 bulk-sender
requirements apply to cPanel
senders too: SPF + DKIM alignment, DMARC
at minimum
p=none(bulk senders strongly encouraged atp=quarantineor stronger), RFC 8058 one-click List-Unsubscribe, and spam-complaint rate < 0.3% for any domain sending >5000 messages/day to gmail.com or yahoo.com. - 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=quarantineafter every legitimate sender is aligned, then top=reject. Never skip fromp=nonetop=reject. - WHM administrators have additional levers: server-wide DKIM key regeneration via Exim Configuration Manager, outbound mail queue management, per-account email quotas, and outbound spam protection. End-user cPanel operators are limited to the Email Deliverability page; ask the hosting provider for WHM-level intervention when needed.
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 cPanel - the dominant control panel for SMB and shared-hosting environments (Bluehost, HostGator, SiteGround, A2 Hosting, GoDaddy cPanel, Namecheap Stellar, Hostinger cPanel, InMotion, DreamHost cPanel, and many others).
The guide is structured around two operator personas because cPanel's UI is intentionally split:
- End-user cPanel operator
- accesses the per-account cPanel UI at
cpanel.<your-domain>or via the hosting provider's portal. Limited to the Email Deliverability page for SPF/DKIM validation; can publish DMARC via the Zone Editor (if DNS is hosted at the cPanel server) or the registrar's DNS panel (if DNS is external). Cannot rotate DKIM selectors or change Exim configuration. - WHM administrator
(Web Host Manager) - accesses the
server-wide control panel at
whm.<hosting-server>. Full access to Exim Configuration Manager, per-account DKIM regeneration, outbound mail queue diagnostics, and server-wide outbound IP configuration. Most shared-hosting customers do NOT have WHM access - it is reserved for VPS / dedicated-server customers and the hosting provider's own staff.
Sections 4-8 (the five deployment steps) apply to both personas. Section 9 (gotchas) and section 11 (troubleshooting) tag persona-specific items explicitly with "[end-user cPanel]" or "[WHM administrator]" so each operator can find their relevant guidance.
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 cPanel-specific UI paths, syntax, and gotchas.
What this guide does not cover:
- Plesk, DirectAdmin, and Webmin - other shared-hosting control panels. Each has its own DKIM signing implementation (Plesk integrates with Postfix and uses a "DomainKeys" UI; DirectAdmin uses Exim like cPanel but with a different management UI). The general DMARC rollout is the same; UI paths differ.
- Reseller hosting configuration - reseller-tier cPanel access (a subset of WHM) varies by hosting provider. Where reseller capabilities matter (e.g. multi-account DKIM rotation), the guide notes the feature without a comprehensive walkthrough.
- Inbound spam filtering and anti-phishing at the cPanel server (SpamAssassin / Apache SpamAssassin, Boxtrapper) - separate from DMARC and out of scope for this guide.
2. Why DMARC matters now: Feb 2024 requirements + shared-IP reputation
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 - regardless of which mailbox provider or hosting control panel sends the mail. cPanel-hosted senders that exceed the threshold are subject to the same enforcement as Workspace or M365 senders.
The five Feb 2024 requirements:
- SPF must pass and align with the visible From: header (RFC 7208).
- DKIM must pass and align with the visible From: header (RFC 6376).
- DMARC TXT record published
with at minimum
p=none- bulk senders strongly encouraged to advance top=quarantineorp=reject. - RFC 8058 one-click List-Unsubscribe on every commercial / marketing message.
- Spam complaint rate < 0.3% as measured at the receiver.
The shared-IP reputation problem
cPanel shared hosting has a structural deliverability ceiling that DMARC does NOT address: outbound mail leaves the server from an IP shared with potentially hundreds of other tenants. The shared IP's reputation at Gmail, Outlook, Yahoo, and the major blocklists is determined by the worst- behaving tenant on the shared server. If a sibling account at the same host sends spam, the IP gets flagged, and YOUR legitimate mail goes to spam regardless of whether your SPF, DKIM, and DMARC all pass.
Operational implications:
- Low-volume transactional and personal mail (under ~1000 messages/day) tolerates shared-IP reputation well. Most cPanel-hosted small business sites fall here. Deploy DMARC for spoofing protection; shared-IP reputation rarely matters at this volume.
- Marketing or commercial-scale
sending (above ~1000
messages/day, definitely above 5000)
should NOT run through shared cPanel
hosting. Move to:
- A dedicated outbound IP (most hosts offer this as a paid upgrade - check with your provider).
- A transactional relay (SendGrid, Mailgun, Amazon SES, Postmark, SparkPost) with a dedicated IP or pool.
- A marketing platform (Mailchimp, Klaviyo, Customer.io) for marketing campaigns.
DMARC at p=quarantine or
p=reject stops domain spoofing
but does NOT improve a poor outbound IP
reputation. Both layers must be addressed
independently. Deploy DMARC for the spoofing
layer regardless of volume; address
deliverability separately by choosing the
right outbound infrastructure for your
volume.
3. Prerequisites
- cPanel access for the
account you are deploying. Most hosting
providers expose cPanel at
cpanel.<your-domain>or via the hosting portal's "Manage cPanel" button. You need the per-account login. - WHM access if your DKIM keys need server-side regeneration (e.g. switching from 1024-bit to 2048-bit, or rotating selectors). Reseller / VPS / dedicated-server customers usually have WHM; pure shared-hosting customers usually do not. If you do not have WHM and need a change at that layer, file a support ticket with your hosting provider.
- DNS edit access for the primary domain. cPanel hosts may manage DNS at the cPanel server (Zone Editor), at the hosting provider's portal, or at an external registrar. Identify where your DNS lives BEFORE attempting to publish records - the cPanel UI may appear to publish a DMARC record but actually only write to the cPanel-server zone file, which is not consulted by public resolvers if your authoritative DNS is elsewhere.
- 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. cPanel itself is the obvious source, but most small businesses also have a marketing platform (Mailchimp), a transactional relay (SendGrid / Mailgun), a contact form mailer, ecommerce platform email (WooCommerce / Shopify with custom domain), and potentially a self-hosted WordPress plugin that bypasses cPanel mail.
4. Step 1: Verify SPF on the Email Deliverability page
cPanel auto-generates an SPF record during account creation. Your job is to verify the record exists and matches what cPanel suggests.
- Sign in to cPanel. Navigate to Email > Email Deliverability.
- The page lists every domain on the account with three columns: SPF, DKIM, and Reverse DNS. Each shows a status indicator (Valid, Problem, or Not Configured).
- If SPF shows Problem or Not Configured, click Manage for the affected domain. The detail page shows the suggested SPF record and a button: Install Suggested Record.
- Click Install Suggested Record. cPanel publishes the record - either to the cPanel-managed zone file (if DNS lives here) or to a downloadable text snippet you must publish manually at your external DNS provider.
Typical cPanel-generated SPF record:
your-domain.com. IN TXT "v=spf1 +a +mx include:<provider-spf-host> ~all"
Where <provider-spf-host>
is the hosting provider's outbound mail
server identity. Common values:
- Bluehost:
include:bluehost.com - HostGator:
include:websitewelcome.com - SiteGround:
include:_spf.siteground.net - A2 Hosting:
include:a2hosting.com - GoDaddy cPanel:
include:secureserver.net - Namecheap Stellar:
include:spf.web-hosting.com - Hostinger cPanel:
include:_spf.hostinger.com - InMotion:
include:inmotionhosting.com
Verify with
dig +short txt your-domain.com
after publication, or via the
Domain Security
Checker. If you also send via third-party
providers (SendGrid, Mailgun, Mailchimp, etc.),
add each provider's include:
in the same record (RFC 7208 §3.2 mandates a
single SPF record per domain). Stay under
the 10-DNS-lookup limit
(RFC 7208 §4.6.4).
Harden the qualifier from
~all (soft-fail, cPanel's
default) to -all (hard-fail)
once your DMARC reports show clean SPF
passes for every legitimate sender. Hard
fail is the production recommendation.
5. Step 2: Verify DKIM at the default._domainkey selector
cPanel auto-generates a DKIM key during
account creation and publishes the public
key at
default._domainkey.<your-domain>
as a TXT record (NOT a CNAME - distinct from
Microsoft 365). The Exim mail server on the
cPanel host signs outbound mail with the
corresponding private key.
Verify on the Email Deliverability page:
- From cPanel, open Email > Email Deliverability.
- Confirm the DKIM column shows Valid for the domain. If Problem or Not Configured, click Manage > Install Suggested Record - cPanel will fetch the public key from Exim's local DKIM configuration and publish it.
- Verify externally with
dig +short txt default._domainkey.your-domain.com. Expected output: av=DKIM1; k=rsa; p=<long-base64-public-key>TXT record.
Typical cPanel DKIM record:
default._domainkey.your-domain.com. IN TXT "v=DKIM1; k=rsa; p=<long-base64-public-key>"
Key length: cPanel historically generated 1024-bit keys; modern cPanel installations (since cPanel & WHM version 90+) generate 2048-bit keys by default. RFC 8301 deprecates 1024-bit RSA DKIM keys - if your account was created years ago, regenerate the key:
- [end-user cPanel]: open Email > Email Deliverability > Manage, look for Regenerate DKIM Key or Update DKIM. If the option is not exposed at your hosting provider, contact support.
- [WHM administrator]:
WHM > Email > Email
Authentication exposes
per-account key regeneration; or via
the command line:
# Run as root on the cPanel server /usr/local/cpanel/bin/dkim_keys_install <cpanel-user> # Or regenerate via the cPanel API: uapi --user=<cpanel-user> EmailAuth install_dkim_records domain=your-domain.com
Key rotation: cPanel does
NOT rotate selectors automatically. Plan a
manual rotation every 6-12 months by
generating a new key with a new selector
(e.g. default20260519._domainkey),
publishing both selectors during the
transition window, switching the Exim
signing configuration to the new selector,
then retiring the old.
Verify by sending a test message to a Gmail
or Yahoo address you control. Open Show
original (Gmail) or the equivalent
raw-source view. The
Authentication-Results header
should show
dkim=pass header.d=your-domain.com header.s=default.
6. Step 3: Publish DMARC at p=none (cPanel does NOT auto-generate)
DMARC is the one record cPanel does NOT
auto-generate - the rua=
mailbox is operator-specific and cPanel
cannot guess where reports should go.
Publish the record manually via the
cPanel Zone Editor:
- From cPanel, open Domains > Zone Editor.
- Find the row for your domain and click Manage.
- Click + Add Record and select Add "TXT" Record.
- Fill in:
- Name:
_dmarc.your-domain.com(cPanel may append your domain automatically - check the final FQDN). - TTL: 14400 (default; lower if you plan to iterate rapidly).
- Type: TXT.
- Record:
v=DMARC1; p=none; rua=mailto:dmarc-reports@your-domain.com; fo=1
- Name:
- Click Add Record.
If DNS is hosted at your registrar instead of at the cPanel server, publish the same record at the registrar's DNS panel (the Zone Editor in cPanel will appear to publish but the record will not be reachable from public resolvers).
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 do not send forensic reports - see DMARC aggregate reports deep dive).
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.
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? cPanel itself (via the host's shared outbound IP range) is obvious; the WordPress plugin you installed 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? Three cPanel-specific
patterns dominate the alignment-failure
surface:
- The shared-bounce-domain pattern - some shared hosts rewrite the envelope MAIL FROM to a provider- controlled domain (e.g. bounces.bluehost.com), so SPF passes for the provider but does not align with your visible From:. DKIM alignment (via the cPanel-issued default._domainkey signature) still works correctly because DKIM is independent of envelope rewriting.
- The WordPress / plugin
pattern - many WordPress
contact-form, ecommerce, and
transactional-email plugins
send mail via PHP's
mail()function or an SMTP plugin without involving cPanel's Email Authentication settings. The mail leaves cPanel's outbound pipe but may bypass the DKIM signing path depending on plugin configuration. - The SaaS-sender pattern
- a third-party service
(SendGrid, Mailgun, Customer.io,
Mailchimp) sends with the From:
header set to your-domain but
its own bounce domain. Fix by
enabling CNAME-delegated DKIM
with
d=your-domainin the SaaS provider.
Continue iterating until every legitimate sender shows in reports as DMARC-pass. The DMARC Analyzer dashboard breaks down per source IP and per sending organisation so each unaligned sender is identifiable.
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"
Edit the existing _dmarc TXT record in the
cPanel Zone Editor (or your registrar's DNS
panel) - change p=none to
p=quarantine. Receivers begin
delivering DMARC-failing mail to spam. A
common pattern: a WordPress plugin that
sends weekly newsletters from an unaligned
SMTP configuration surfaces in the first
week at p=quarantine.
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. cPanel and shared-hosting gotchas
- [shared hosting] Shared outbound IP reputation. Covered in section 2. The single biggest commercial-reality issue with cPanel hosting that DMARC does NOT solve. Move bulk and marketing-scale sending to a dedicated IP or a transactional relay.
- [end-user cPanel] DNS hosted at
the registrar, not cPanel. The
cPanel Zone Editor will let you publish
records to its local zone file, but if
your authoritative DNS lives at
Cloudflare, Route 53, or your registrar,
public resolvers will never see those
records. Verify with
dig +short ns your-domain.com- if the nameservers are NOT the cPanel host's nameservers, publish DNS records at the registrar / external DNS provider. - [end-user cPanel] WordPress
plugins bypassing Email
Deliverability. The
wp_mail()function in WordPress is widely overridden by SMTP plugins (WP Mail SMTP, Easy WP SMTP, FluentSMTP) that route outbound through a third-party SMTP relay - bypassing cPanel's Exim DKIM signing entirely. Either configure the SMTP plugin to use the cPanel server's SMTP (so DKIM is applied) or configure the plugin's third-party SMTP to sign DKIM withd=your-domainunder a CNAME-delegated selector. - [WHM administrator] Exim global configuration vs per-account DKIM. WHM > Exim Configuration Manager controls global signing behaviour - per-account DKIM keys are managed separately via Email Authentication. Both layers must cooperate: a per-account DKIM key with signing disabled at the global level produces no signatures.
- [WHM administrator] Outbound IP rotation and feedback loops. High-volume shared servers sometimes rotate outbound IPs to distribute spam complaint load. Per-tenant DMARC reports will show MULTIPLE source IPs across the host's outbound pool. Register the outbound pool with major-receiver feedback loops (Microsoft SNDS, Google Postmaster Tools - which works for any sender not just Workspace, Yahoo Complaint Feedback Loop) for inbound spam-complaint telemetry.
- [end-user cPanel] cPanel Webmail vs external IMAP/SMTP. End users sending via cPanel Webmail (Roundcube / Horde) or via the cPanel SMTP endpoint get the full Exim DKIM treatment automatically. Users sending from a phone or desktop client configured against a NON-cPanel SMTP relay (rare but possible) will bypass the DKIM signing path.
10. Common cPanel + DMARC mistakes
- Assuming cPanel auto-generated DMARC. cPanel auto-generates SPF and DKIM but NOT DMARC. The Email Deliverability page does not surface DMARC at all - operators must publish the _dmarc TXT record manually.
- Publishing DMARC at the cPanel
Zone Editor when DNS is hosted
elsewhere. The Zone Editor
will accept the record but it will not
be visible to public resolvers. Verify
your nameservers with
dig +short ns your-domain.combefore deciding where to publish. - Forgetting to advance past
p=none. The reporting-only phase does NOT stop spoofing. Advance to enforcement after 2-6 weeks of clean reports. - Running a 1024-bit DKIM key on a legacy cPanel install. RFC 8301 deprecated 1024-bit RSA DKIM. Modern cPanel installs use 2048-bit by default; legacy installs need regeneration via Email Deliverability > Manage or via WHM.
- Two SPF records on the same domain. RFC 7208 §3.2 mandates a single SPF record. If you add a SaaS-sender include, MERGE it into the existing cPanel-generated record - do not publish a second TXT.
- SPF over 10 DNS lookups.
The cPanel-host include plus several
third-party
include:directives commonly blow the limit. Use Domain Security Checker to count lookups. - Skipping the WordPress plugin audit. WordPress installations typically send mail through paths that bypass cPanel's Exim signing. Configure WP Mail SMTP / equivalent to route via the cPanel SMTP endpoint OR to sign DKIM under your domain via the third-party SMTP's authentication settings.
- Treating shared-IP reputation as a DMARC problem. DMARC does not improve poor outbound IP reputation. If your mail is consistently going to spam at Gmail despite SPF/DKIM/DMARC all passing, the diagnosis is reputation, not authentication. Migrate the workload off shared hosting.
- 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. - Treating DMARC as one-time work. New WordPress plugins, SaaS integrations, and acquired domains constantly surface new senders. Indefinite monitoring is the ongoing cost of DMARC enforcement.
11. Troubleshooting
- "Email Deliverability page shows
SPF/DKIM as Problem despite Install
Suggested Record being clicked".
Two causes: (1) DNS is hosted at your
registrar, not at the cPanel server -
the suggested record was published to
the local zone file but the public DNS
sees nothing. Republish at the
registrar. (2) The DNS change has not
propagated yet - wait 24 hours and
retry. Verify externally with
dig +short txt your-domain.comanddig +short txt default._domainkey.your-domain.com. - "My cPanel mail goes to spam at
Gmail despite all three records
passing". Diagnose
shared-IP reputation:
dig +short a mail.<your-cpanel-server>then check the IP at Blacklist Checker. If the IP is on a major blocklist (Spamhaus, SORBS, Barracuda), the deliverability problem is upstream of DMARC. Move bulk sending off shared hosting; for transactional volume, file a ticket with the hosting provider and request a clean outbound IP. - "DMARC reports show DKIM header.d=<hosting-provider>.com, not my custom domain". The mail is being signed under the hosting provider's domain (typical when envelope rewriting is enabled server-wide), not under default._domainkey.your-domain.com. Either confirm Exim is configured to sign with the per-account DKIM key ([WHM administrator] - check Exim Configuration Manager) or accept that DMARC alignment will rely on provider-domain SPF rather than per-domain DKIM.
- "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.
- "My SPF record is failing with permerror". Almost always the 10-DNS-lookup limit. Run Domain Security Checker.
- "How do I inspect Exim's
outbound mail queue?"
[WHM administrator] WHM >
Email > Mail Queue
Manager shows the live Exim
queue with delivery status per message.
From the command line:
exim -bp # list queue exim -bpc # queue size count exim -Mvh <message-id> # view message headers exim -Mrm <message-id> # remove a stuck message - "I don't have WHM access and need a DKIM key rotation". File a support ticket with the hosting provider. Most providers will rotate the key on request; many will not proactively rotate without operator intervention. A workaround: publish a new DKIM key with a new selector at the SaaS-relay layer (CNAME-delegated) and route outbound mail through the relay until cPanel-side rotation is scheduled.
12. Frequently asked questions
- How do I set up DMARC on cPanel?
-
Five steps. Open Email >
Email Deliverability, click
Install Suggested Record
if SPF or DKIM is missing or invalid.
Verify SPF at the apex and DKIM at
default._domainkey. Manually publish DMARC at_dmarcvia Zone Editor (cPanel does NOT auto-generate DMARC). Ingest reports for 2-6 weeks, align every legitimate sender, advance throughp=quarantinetop=reject. - What SPF include does cPanel use?
-
Provider-specific. Bluehost:
bluehost.com, HostGator:websitewelcome.com, SiteGround:_spf.siteground.net, A2 Hosting:a2hosting.com, GoDaddy:secureserver.net, Namecheap:spf.web-hosting.com, Hostinger:_spf.hostinger.com. The cPanel Install Suggested Record button fetches the correct include from the WHM server's mail configuration. - What DKIM selector does cPanel use?
-
default. The TXT record lives atdefault._domainkey.<your-domain>. Distinct from Workspace (google._domainkey) and M365 (selector1/selector2CNAMEs). Key rotation is manual on cPanel; plan one every 6-12 months. - Why does cPanel not auto-generate DMARC like it auto-generates SPF and DKIM?
-
The
rua=mailbox destination is operator-specific. cPanel cannot pick a sensible default without risking that reports go to a non- existent or third-party address. Publish manually via Zone Editor withv=DMARC1; p=none; rua=mailto:dmarc-reports@your-domain.com; fo=1. - How do shared IPs affect DMARC and deliverability on cPanel hosting?
- Shared cPanel hosting puts your outbound mail on an IP shared with other tenants. The shared IP's reputation is set by the worst-behaving sibling. DMARC at enforcement stops spoofing but does NOT compensate for poor IP reputation. For bulk or commercial-scale sending, move to a dedicated outbound IP or a transactional relay (SendGrid, Mailgun, Amazon SES, Postmark).
- Why is my DMARC failing despite cPanel showing SPF and DKIM as passing?
- Alignment failure. Either the provider-bounce-domain pattern (SPF passes on the host but does not align), the WordPress-plugin pattern (mail bypasses cPanel's Exim signing path), or the SaaS-sender pattern (third-party platform uses its own bounce domain). See help_dmarc_alignment.php for the deep dive.
- Do I need DMARC if I only send transactional email through cPanel?
- Yes. cPanel's SPF / DKIM on your legitimate outbound mail does NOT stop attackers from spoofing your domain at other receivers. DMARC at enforcement is what closes that gap. Deployment cost is one DNS record; benefit is unbounded.
- Where do I see DMARC reports for cPanel mail?
-
Receivers (Google, Microsoft, Yahoo,
Comcast, and others) send daily
aggregate reports to the
rua=mailbox in your DMARC record. DMARC Analyzer ingests these viaincludes/DmarcParser.php. cPanel's Email Deliverability page does not parse DMARC reports - it only validates the current DNS records exist.
Deploy DMARC for your cPanel domain now
DMARC Analyzer parses the daily aggregate
reports 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;
the Blacklist
Checker diagnoses shared-IP reputation
issues common on shared cPanel hosting.