TrekMail TrekMail
Deliverability & DNS

Create DMARC Record: DNS Setup, Policy, and Mistakes

By Alexey Bulygin
Create DMARC Record: DNS Setup, Policy, and Mistakes

You usually decide to create DMARC record after something already went sideways. Spoofed mail. Gmail warnings. A vendor asking for DNS changes. Or a deliverability report that shows SPF and DKIM passing on some mail and failing on the rest. If you're still building the rest of your stack, start with our business email guide so the domain, mailbox, and DNS pieces line up from day one.

Here's the blunt version: if you create DMARC record the wrong way, nothing explodes immediately. That's what makes it dangerous. The record can exist and still be useless. Wrong host. Bad policy. Reports going nowhere. No alignment. Then spoofing keeps happening and legitimate mail still lands in spam.

This guide shows you exactly how to create DMARC record, what tags matter, what to publish at _dmarc.yourdomain.com, and when to move from monitoring to enforcement. No fluff. No generic DNS advice.

What you publish when you create DMARC record

To create DMARC record, publish a TXT record at _dmarc.yourdomain.com that starts with v=DMARC1 and includes a valid policy tag like p=none, p=quarantine, or p=reject. DMARC tells receiving servers what to do when mail claiming to be from your domain fails aligned SPF and DKIM checks.

The shortest valid example looks like this:

Host/Name: _dmarc
Type: TXT
Value: v=DMARC1; p=none;

That works. Barely. It's watch mode. Good for first deployment, weak for long-term protection.

A more useful starting record looks like this:

Host/Name: _dmarc
Type: TXT
Value: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; adkim=r; aspf=r; pct=100

And if you're ready to enforce:

Host/Name: _dmarc
Type: TXT
Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; adkim=r; aspf=r; pct=100

RFC 7489 says the v tag must be first and the p tag must be present, or receivers can ignore the policy. That's not optional. Read the source if you want the protocol details: RFC 7489.

Where to create DMARC record in DNS

When you create DMARC record, you do not publish it at the root of the domain. You publish a TXT record on the host _dmarc. For example.com, the full lookup target is _dmarc.example.com. Put it anywhere else and receivers won't use it.

This is the mistake that burns hours. People add the value at @, or they paste _dmarc.example.com into a DNS panel that expects only _dmarc. Same record. Different UI rules. Easy to get wrong.

After you create DMARC record, verify it from the command line instead of trusting the DNS panel:

dig txt _dmarc.example.com +short
nslookup -q=txt _dmarc.example.com

You want to see one TXT response, not two, and it should start with v=DMARC1.

If you're using TrekMail, the fastest path is to add the domain, copy the required DNS values, and verify them against live lookups in the dashboard. The relevant docs are Adding a Domain, Required DNS Records, and Checking DNS Status.

Tags to use when you create DMARC record

When you create DMARC record, most tags are optional, but a few do real work. Start with v, p, and rua. Then add alignment tags if you need tighter control. Ignore exotic settings until the basics are clean.

TagRequiredWhat it doesPractical advice
vYesVersion identifierMust be DMARC1 and must come first
pYesPolicy for failing mailUse none, then move to quarantine, then reject
ruaNoAggregate reports destinationUse it. Flying blind is dumb
rufNoFailure report destinationUseful in some environments, noisy in others
adkimNoDKIM alignment moder is the default and right for most teams
aspfNoSPF alignment moder first, s only if you know why
pctNoSampling percentageKeep at 100 unless you're phasing enforcement carefully
spNoPolicy for subdomainsUseful if marketing or support mail lives on subdomains

If you create DMARC record with only p=none and no rua, you are technically compliant and operationally blind. Better than nothing. Still not good.

How to choose the right policy when you create DMARC record

To create DMARC record safely, start with p=none if you do not fully control every sender using your domain. Move to p=quarantine after you review reports and fix misaligned services. Use p=reject only when you are confident unknown senders are actually unauthorized.

PolicyWhat receivers doWhen to use itMain risk
p=noneMonitor onlyInitial rolloutSpoofed mail still gets through
p=quarantineSend failing mail to spam or junkMost business domains after cleanupSome valid edge-case mail may get spammed
p=rejectReject failing mail outrightMature setup with known senders onlyMisconfigured legit mail gets blocked hard

Google's current sender guidance says bulk senders should have SPF and DKIM, and the organizational domain in the From header should align with either SPF or DKIM. Google also states that full alignment on both is the direction of travel. Source: Google's email sender guidelines FAQ.

Translation: don't treat DMARC like a checkbox. If your CRM uses your domain in the From header but signs with its own domain and sends from its own bounce domain, DMARC can still fail even when the vendor claims "authentication is enabled."

Step by step: create DMARC record the right way

If you want to create DMARC record without breaking live mail, follow a staged rollout. Inventory senders first, publish watch mode second, and enforce only after the reports stop showing surprises.

  1. List every service that sends as your domain. That includes Google Workspace, Microsoft 365, support tools, CRMs, forms, invoicing apps, and newsletter platforms.
  2. Confirm SPF is valid and DKIM is enabled for each sender. DMARC sits on top of those two checks. It does not replace them.
  3. Create a report mailbox such as dmarc@yourdomain.com or route reports to a reporting service.
  4. Create DMARC record with p=none first.
  5. Wait for aggregate reports and review who is actually sending mail.
  6. Fix alignment problems. This is usually a From-domain or DKIM-domain issue, not a DMARC issue.
  7. Move to p=quarantine.
  8. Move to p=reject when the reports stay clean.

A solid starting record for most business domains in 2026 looks like this:

Host/Name: _dmarc
Type: TXT
Value: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; adkim=r; aspf=r; pct=100

If forwarding is part of your workflow, read forward domain email to Gmail. Straight forwarding breaks SPF by design. DMARC survives only if DKIM alignment still passes or the forwarding stack uses the right protocols.

Common mistakes when you create DMARC record

Most DMARC failures are not protocol failures. They are operator mistakes. Wrong host, duplicate TXT records, broken report addresses, or expecting DMARC to fix bad SPF and missing DKIM. Create DMARC record cleanly, then test it from the outside.

Here are the mistakes that show up again and again:

1. Publishing at the root instead of _dmarc.
If you create DMARC record on @, receivers won't see it.

2. Using more than one DMARC TXT record.
RFC 7489 says multiple DMARC policy records cause DMARC processing to stop. One domain. One DMARC record.

3. Adding p=reject on day one.
This is how you block your own password resets, invoices, or helpdesk replies because one forgotten service was still sending as your domain.

4. Pointing rua to a mailbox that doesn't exist.
Then you think no one is sending reports. They are. You're just not receiving them.

5. Expecting DMARC to repair forwarding.
It won't. DMARC depends on aligned SPF or DKIM. Forwarding usually breaks SPF. DKIM has to carry the load.

Example: your site sends order confirmations through one SMTP provider, support replies through another, and marketing through a third. You create DMARC record with p=reject before checking all three. One passes. Two fail. Customers stop getting mail. The DMARC record did exactly what you told it to do.

If you're still setting up the full domain from scratch, our create email with your domain guide covers the full DNS and mailbox workflow around SPF, DKIM, and DMARC together.

Old Way vs New Way: create DMARC record across many domains

The old way to create DMARC record across a fleet of domains is spreadsheets, registrar logins, and random TXT values copied from old tickets. The new way is a single dashboard, live DNS verification, and standardized records per domain so you can spot conflicts fast.

Old WayNew Way with TrekMail
Log into each registrar and guess which DNS values are currentUse one dashboard for multi-domain email management
Manually compare TXT records and hope propagation is doneRun live DNS verification and see exact conflicts
Manage SPF, DKIM, and DMARC separately across toolsUse TrekMail's SPF/DKIM/DMARC workflow in one place
Pay per user even when most domains have low mailbox countsUse flat-rate multi-domain pricing starting at $3.50/mo

TrekMail is built for this exact operational mess: multiple domains, pooled storage, IMAP mailboxes, built-in migration, catch-all, forwarding, and either managed SMTP or your own SMTP. The Nano plan stays free for up to 10 domains with BYO SMTP. Paid plans start at $3.50/month. If you want included SMTP and a cleaner sending setup, check TrekMail pricing.

The practical win is not just that you can create DMARC record faster. It's that you can verify the whole mail stack around it without juggling five vendors and twenty browser tabs.

Final checklist before you create DMARC record and enforce it

Before you create DMARC record in enforcement mode, make sure SPF and DKIM are already working for every legitimate sender, your reporting address exists, and your DNS panel is publishing one valid TXT record at _dmarc. DMARC is the policy layer. It is not a shortcut around broken authentication.

Use this quick final check:

  1. One DMARC TXT record only.
  2. Host is _dmarc.
  3. Value starts with v=DMARC1; p=....
  4. rua points to a real mailbox or reporting service.
  5. SPF is merged into one record, not split across many TXT records.
  6. DKIM is enabled for every sender that uses your domain in the From header.
  7. Command-line lookup shows the exact record you expect.
  8. Policy starts at none unless you already know every sender is aligned.

If your goal is to create DMARC record once and not babysit DNS forever, TrekMail is the cleaner operating model. One place to manage custom domains, IMAP mailboxes, DNS health, SMTP choice, and migrations. Start at trekmail.net and stop treating deliverability like a side quest.

Share this article

We use cookies for essential functionality. No ads, no ad tracking.

or
or

Reset email sent

If an account exists for this email, we've sent password reset instructions.

By continuing, you agree to TrekMail's Terms and Privacy Policy.