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 at p=none.
  • Default DKIM selector: cPanel uses default._domainkey by convention - distinct from Google Workspace (google._domainkey) and Microsoft 365 (selector1 + selector2 CNAMEs). 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 at p=quarantine or 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.com first. Ingest reports for 2-6 weeks to inventory every sender. Advance to p=quarantine after every legitimate sender is aligned, then to p=reject. Never skip from p=none to p=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:

  1. SPF must pass and align with the visible From: header (RFC 7208).
  2. DKIM must pass and align with the visible From: header (RFC 6376).
  3. DMARC TXT record published with at minimum p=none - bulk senders strongly encouraged to advance to p=quarantine or p=reject.
  4. RFC 8058 one-click List-Unsubscribe on every commercial / marketing message.
  5. 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.
    Each of these provides per-tenant reputation isolation that shared cPanel does not.

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.

  1. Sign in to cPanel. Navigate to Email > Email Deliverability.
  2. 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).
  3. 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.
  4. 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:

  1. From cPanel, open Email > Email Deliverability.
  2. 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.
  3. Verify externally with dig +short txt default._domainkey.your-domain.com. Expected output: a v=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:

  1. From cPanel, open Domains > Zone Editor.
  2. Find the row for your domain and click Manage.
  3. Click + Add Record and select Add "TXT" Record.
  4. 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
  5. 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-domain in 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 with d=your-domain under 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

  1. 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.
  2. 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.com before deciding where to publish.
  3. Forgetting to advance past p=none. The reporting-only phase does NOT stop spoofing. Advance to enforcement after 2-6 weeks of clean reports.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. Publishing DMARC at p=reject without alignment fix-up. The fastest path to a self-inflicted email outage. Always ingest reports at p=none for 2-6 weeks first.
  10. 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.com and dig +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 _dmarc via Zone Editor (cPanel does NOT auto-generate DMARC). Ingest reports for 2-6 weeks, align every legitimate sender, advance through p=quarantine to p=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 at default._domainkey.<your-domain>. Distinct from Workspace (google._domainkey) and M365 (selector1/selector2 CNAMEs). 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 with v=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 via includes/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.

Sign up — Free plan Check my cPanel domain