Free Tool
    Updated 7 June 2026

    DMARC Record Generator

    Build a valid DMARC TXT record in under a minute. Choose your policy, set reporting addresses, and get a copy-paste record to publish at _dmarc.

    By Deepak Shukla — Founder & CEO, Pearl Lemon

    Build your DMARC record

    v=DMARC1; p=none; adkim=r; aspf=r; fo=1

    Publish as TXT at _dmarc.yourdomain.com. Start with p=none for 2–4 weeks, then move to quarantine, then reject.

    What This Tool Checks

    • Policy selection (none, quarantine, reject) with rollout guidance
    • Optional separate subdomain policy (sp=)
    • Aggregate (rua) and forensic (ruf) report destinations
    • Coverage percentage for staged rollouts (pct=)
    • DKIM and SPF alignment mode (adkim, aspf)
    • Outputs a single-line TXT value ready to publish at _dmarc

    Why This Matters

    Since February 2024, Gmail and Yahoo require DMARC for any sender pushing more than 5,000 messages a day. From 2026 onward, even small senders without DMARC see significantly lower inbox placement. DMARC is also the only protocol that prevents display-name spoofing — the most common phishing vector against your customers and staff.

    How to Fix Issues

    1. 1.Start with p=none and rua= pointing at a mailbox you actually read (or a DMARC reporting service)
    2. 2.Collect reports for 2–4 weeks and identify every legitimate sender
    3. 3.Fix SPF and DKIM until reports show 100% alignment for legitimate mail
    4. 4.Promote to p=quarantine for 2–4 weeks, watching for false positives
    5. 5.Promote to p=reject — the final, fully protected state
    6. 6.Publish as a TXT record at `_dmarc.yourdomain.com`

    DMARC is the record that turns SPF and DKIM from information into policy. Without it, a receiving server knows your message failed authentication but has no instruction about what to do. With it, you decide — and, more usefully at first, you get reports telling you who is sending mail in your name.

    Start with reporting, not enforcement

    The strong temptation is to publish a reject policy immediately, because it sounds like the secure choice. It is the wrong first move. Almost every organisation has at least one legitimate sender it has forgotten: an old invoicing tool, an event platform, a form handler, a script on a server someone set up years ago. A reject policy on day one blocks that mail, and the failure is invisible to you and visible only to the recipient. Publish a monitoring policy, read the aggregate reports for a few weeks, and let the data list your senders for you.

    Reading the rollout

    Once reports show only senders you recognise and all of them authenticating, move to quarantine, optionally applying it to a percentage of mail first. When quarantine is quiet, move to reject. Subdomains deserve their own consideration: a separate subdomain policy lets you enforce strictly on a domain that should never send mail while staying permissive on the one your business uses daily.

    Alignment is the detail that trips people

    DMARC does not simply ask whether SPF or DKIM passed. It asks whether the domain they authenticated matches the domain in the From address your recipient sees. A platform sending on your behalf under its own domain can pass SPF perfectly and still fail DMARC. Relaxed alignment accepts a matching organisational domain, strict alignment requires an exact match — and the difference explains most confusing report output.

    Where the record goes and what to expect

    Publish the value as a TXT record at the _dmarc subdomain of the domain you are protecting. Aggregate reports begin arriving within a day or two as XML files, one per receiving provider per day; a report parser makes them readable. Treat DMARC as a project with a beginning and an end, but re-open it whenever a new sending tool is added, because that is when a working configuration quietly stops covering everything.

    Methodology

    A deterministic client-side builder that follows RFC 7489 exactly. We emit tags in the canonical order (v, p, sp, adkim, aspf, pct, rua, ruf, fo) separated by semicolons, with mailto: prepended to every reporting address since RFC requires a URI scheme. fo=1 is set by default because it produces actionable forensic reports without spamming you (only fires when both SPF and DKIM fail). The generator does not call any external service — the record is built entirely in your browser and shown live as you change the inputs. We deliberately recommend starting at p=none because going straight to reject before you have clean reports will block legitimate mail.

    Frequently Asked Questions

    Monitor this continuously with LemWatch

    A one-off free dmarc record generator shows you today. LemWatch re-runs the same checks around the clock and alerts you the moment something breaks — free for up to 10 sites, no card needed.

    HTTP Status Code Reference

    Understanding HTTP status codes helps you diagnose issues found by this tool: