XiaTools

Adding a DMARC Record via cPanel Zone Editor Without Errors

Updated 14 Oct 2026

Setting up email authentication can feel daunting, but using a reliable DMARC Record Generator simplifies the process by building a syntactically correct policy string tailored to your domain's exact security needs. Domain-based Message Authentication, Reporting, and Conformance (DMARC) protects your domain from spoofing and phishing by telling receiving mail servers how to handle emails that fail SPF or DKIM checks.

When you manage your DNS through cPanel, adding this record requires precision to avoid common syntax typos that can break email delivery. This guide walks you through generating a secure DMARC policy and publishing it correctly using the Zone Editor.

Preparing Your DMARC Policy

Before you touch cPanel, you need to decide what your DMARC policy should achieve. A DMARC record is a TXT record published at the _dmarc subdomain. It relies heavily on tags such as v (version), p (policy), rua (aggregate reports), and pct (percentage).

Understanding DMARC Policy Levels

Your policy tag (p=) dictates what receiving servers do with unauthenticated emails:

  • None (p=none): Often called the monitoring stage. Emails that fail authentication are delivered normally, but you receive XML reports about who is sending mail on your behalf.
  • Quarantine (p=quarantine): Suspicious emails are routed to the spam or junk folder rather than the inbox.
  • Reject (p=reject): Unauthorized emails are blocked entirely at the server level before reaching the recipient.

It is always best practice to start with p=none to review your traffic reports before moving to quarantine or reject.

Step-by-Step: Generating and Adding Your DMARC Record in cPanel

Follow these precise steps to build your policy and publish it via your hosting control panel. Note that hosting providers occasionally update their interfaces, so menu paths may differ slightly depending on your theme.

Step 1: Generate the Policy String

Use the DMARC Record Generator tool to input your preferred parameters, such as your reporting email address (mailto:dmarc-reports@example.com) and your alignment settings. The tool will output a string that looks similar to this:

v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com; sp=none; aspf=r; adkim=r;

Step 2: Access the cPanel Zone Editor

  1. Log in to your hosting account and navigate to your cPanel dashboard.
  2. Scroll down to the Domains section and click on Zone Editor.
  3. Locate the domain where you want to add the policy and click the Manage button next to it.

Step 3: Create the TXT Record

  1. Near the top right of the DNS records table, click the arrow next to the + Add Record button and select Add A Record, then change the type to TXT.
  2. In the Name field, enter _dmarc.example.com. (be sure to include your actual domain name and trailing dot if your cPanel requires fully qualified domain names; many cPanel themes automatically append your main domain when you type just _dmarc).
  3. Set the TTL (Time to Live) to a standard value like 14400 or 3600 seconds.
  4. In the Record or TXT Data field, paste the exact string generated in Step 1.
  5. Click Save Record.

DMARC Record Format Comparison

Tag Purpose Example Value Recommended Starting Setting
v= Protocol Version DMARC1 DMARC1 (Mandatory)
p= Policy for main domain none, quarantine, reject none
rua= Aggregate reporting URI mailto:reports@example.com Your monitoring inbox
pct= Percentage of messages to filter 1 to 100 100 (or start lower like 20)

Verifying Your DMARC Deployment

Once you have saved your record in cPanel, DNS propagation usually takes anywhere from a few minutes to a few hours. You should verify that the record is readable and free of syntax errors.

Checking via Command Line

You can query your new TXT record using standard command-line utilities. Open your terminal or PowerShell and run a dig query:

dig TXT _dmarc.example.com +short

A successful query will return your policy string wrapped in quotes:

"v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com;"

If you are on Windows PowerShell, you can use nslookup instead:

nslookup -type=TXT _dmarc.example.com

Common Mistakes and How to Fix Them

Even experienced administrators occasionally run into issues when publishing DMARC records. Here are the most frequent pitfalls:

  • Duplicate DMARC Records: Publishing more than one _dmarc TXT record invalidates the policy entirely. Ensure you only have a single record active for your domain.
  • Typo in the Hostname: Entering dmarc.example.com instead of _dmarc.example.com. The underscore prefix is mandatory.
  • Invalid Reporting Email: Pointing the rua tag to an external domain that has not published a valid DMARC external destination configuration (RFC 7489) will cause receiving servers to ignore your reporting requests.
  • Skipping SPF and DKIM: DMARC relies on SPF and DKIM to function. If your emails fail basic SPF checks, DMARC will not save your deliverability.

Quick Checklist for DMARC Setup

  • Verify SPF and DKIM are already configured and passing.
  • Use the generator tool to create a strict or monitoring policy string.
  • Open cPanel Zone Editor and select Add Record.
  • Name the record _dmarc (or _dmarc.example.com.).
  • Set the record type to TXT.
  • Paste the policy string without extra whitespace.
  • Save the record and test using dig or nslookup.

Frequently asked questions

What happens if I have multiple DMARC records in cPanel?

Publishing more than one DMARC record for a single domain violates the specification. Receiving mail servers will encounter a syntax conflict and typically ignore both records, leaving your domain completely unprotected.

Why is my cPanel Zone Editor adding my domain name twice to the DMARC host?

Many cPanel themes automatically append your root domain name to any value you type in the Name field. If you type `_dmarc.example.com`, cPanel might turn it into `_dmarc.example.com.example.com`. To prevent this, type only `_dmarc` and let cPanel complete the rest.

How long does it take for a DMARC record added in cPanel to start working?

DNS propagation usually takes anywhere from 5 minutes to 24 hours depending on your domain registrar's TTL settings. Most modern DNS providers update global zones within 15 minutes.

Should I jump straight to p=reject in my DMARC policy?

No, jumping straight to reject can block legitimate emails if your SPF or DKIM records have minor misconfigurations. Always start with p=none to monitor your email traffic via XML reports before stepping up to quarantine and reject.

Can I use an external email address for DMARC aggregate reports?

Yes, but if you send reports to a domain different from the one publishing the DMARC record, the target domain must explicitly accept those reports by publishing a specific DNS record authorizing your domain to send reports there.

Related articles

Free tools