Back to Blog
DNS Security

How to Create a DMARC Record: A Step-by-Step Guide

IntoDNS.AI TeamMay 24, 2026
Email authentication audit workflow

Okay, so you've heard about DMARC and how it's supposed to help protect your email. It sounds complicated, right? Like something only big companies need to worry about. But honestly, it's becoming more and more important for everyone, even if you're just sending out a few emails a week. This guide is here to break down how to create a DMARC record without all the confusing tech talk. We'll go step-by-step, so you can actually get this done.

Key Takeaways

  • To create a DMARC record, you first need to have SPF and DKIM set up correctly. DMARC builds on those, it doesn't replace them.
  • The DMARC record itself is a TXT record added to your domain's DNS. It tells email servers what to do with messages that don't pass your checks.
  • Start with a 'none' policy (p=none) to just monitor who's sending email from your domain. This is the safest way to begin.
  • Gradually move to a 'quarantine' policy (p=quarantine) and then a 'reject' policy (p=reject) after you've reviewed your reports and are sure legitimate mail isn't being affected.
  • Regularly check your DMARC reports to catch any issues, like unauthorized senders or services that aren't set up right, and adjust your record as needed.

Establishing the DMARC Record Foundation

Understanding DMARC's Role in Email Authentication

DMARC, which stands for Domain-based Message Authentication, Reporting, and Conformance, functions as a critical policy layer built upon existing email authentication protocols: SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail). Its primary objective is to provide domain owners with a standardized method to prevent email spoofing and phishing attacks that leverage their domain names. By defining a clear policy, DMARC instructs receiving mail servers on how to handle emails that fail authentication checks. This process is not merely a best practice; it is rapidly becoming a de facto requirement for maintaining email deliverability and brand reputation, particularly with the evolving sender requirements from major mailbox providers.

  • DMARC dictates the action to be taken on emails failing SPF and DKIM alignment.
  • It facilitates the collection of aggregate reports, offering visibility into email sending sources and authentication status.
  • Optionally, DMARC can request forensic reports for detailed analysis of individual authentication failures.

Without DMARC, even correctly configured SPF and DKIM records leave a domain vulnerable, as receivers lack explicit instructions on handling unauthenticated mail. The implementation of DMARC is therefore a necessary step for any organization serious about email security and brand protection.

Prerequisites: SPF and DKIM Configuration

Before proceeding with DMARC record creation, it is imperative that both SPF and DKIM are correctly implemented and actively authenticating mail for your domain. DMARC relies on the successful operation of these foundational protocols. An improperly configured SPF or DKIM record will lead to DMARC failures, regardless of the DMARC policy itself. Ensure that your SPF record accurately lists all authorized sending sources and does not exceed the 10 DNS lookup limit. Similarly, verify that DKIM signatures are being applied to outgoing mail with appropriate selectors and key lengths. It is recommended to allow these records to authenticate mail for at least 48 hours prior to publishing your DMARC record to gather initial data and confirm their efficacy.

  • SPF: Authorizes sending IP addresses for your domain. Must be a single TXT record and adhere to DNS lookup limits.
  • DKIM: Adds a cryptographic signature to emails, verifying message integrity and sender authorization. Requires a TXT record published in DNS.

The DMARC Record Structure and Essential Tags

A DMARC record is published as a TXT record in your domain's DNS, specifically at the hostname _dmarc. The record itself is a string of tag-value pairs, separated by semicolons. While numerous tags exist, a minimal DMARC record requires only a few. The v tag, specifying the DMARC version, and the p tag, defining the policy, are mandatory. Understanding these core components is the first step toward constructing an effective DMARC policy.

  • v=DMARC1: This tag indicates the DMARC version. It must always be present and set to DMARC1.
  • p=: This tag defines the policy for handling emails that fail DMARC authentication. The primary options are none (monitor only), quarantine (send to spam/junk), and reject (block the email).
  • rua=: This tag specifies the email address(es) where aggregate DMARC reports should be sent. These reports are vital for monitoring and analysis.
| Tag | Description                                                                 |
|-----|-----------------------------------------------------------------------------|
| v   | DMARC version (e.g., `v=DMARC1`)                                              |
| p   | Policy for unauthenticated mail (`none`, `quarantine`, `reject`)            |
| rua | URI for aggregate DMARC reports (e.g., `mailto:[email protected]`) |

Properly establishing these foundational elements ensures that your DMARC implementation will be technically sound and capable of providing the visibility and protection required in modern email security.

Constructing the DMARC TXT Record

Defining the Version and Policy Tags

The DMARC record is a TXT record published in your domain's DNS. It begins with a mandatory version tag, v=DMARC1. This tag unequivocally identifies the record as a DMARC policy. Following the version, the policy tag p= is the most critical element. It dictates the action receiving mail servers should take when a message fails DMARC authentication. The available policies are:

  • none: No specific action is taken. This is the recommended starting point for monitoring and analysis.
  • quarantine: Messages failing DMARC are treated as spam or junk.
  • reject: Messages failing DMARC are rejected outright and not delivered.

It is imperative to start with p=none to avoid inadvertently blocking legitimate email.

Configuring Reporting Addresses (RUAA and RUF)

To gain visibility into your email traffic and identify potential authentication issues or malicious activity, DMARC provides reporting mechanisms. The rua= tag specifies one or more email addresses where aggregate reports should be sent. These reports, typically in XML format, provide a summary of mail received, including sender IP addresses, authentication results, and DMARC alignment status. For example: rua=mailto:[email protected].

Optionally, the ruf= tag can be used to specify addresses for forensic reports. These reports contain more detailed, per-message failure information, often including redacted message samples. However, due to privacy concerns, many receivers no longer send these reports. If you configure rua= or ruf= to an address at a domain you do not control, that domain must publish an authorization record to permit report delivery.

Specifying Alignment Modes (ADKIM and ASPF)

Alignment refers to how closely the domain in the authentication results (SPF or DKIM) matches the domain in the From: header of the email. The adkim= and aspf= tags control this alignment. The two modes are:

  • r (relaxed): Allows for organizational domain alignment. For example, mail.example.com would align with example.com.
  • s (strict): Requires an exact domain match. mail.example.com would not align with example.com under strict mode.

The default alignment mode for both is r (relaxed), which is suitable for most organizations. Strict alignment is generally only necessary in specific, highly controlled environments. Configuring these tags incorrectly can lead to legitimate mail failing DMARC, even if SPF and DKIM pass. Therefore, it is advisable to use the default relaxed alignment unless a specific requirement dictates otherwise. You can find more details on DMARC's role in email authentication.

Example DMARC Record Structure:

v=DMARC1; p=none; rua=mailto:[email protected]; adkim=r; aspf=r;

Implementing a Staged DMARC Rollout Strategy

Implementing DMARC requires a methodical approach to avoid disrupting legitimate email flow. A direct transition to a strict policy, such as p=reject, without prior analysis can lead to the rejection of valid messages. Therefore, a staged rollout is imperative.

Initiating with a Monitoring-Only Policy (P=None)

The initial phase involves deploying DMARC with a p=none policy. This configuration instructs receiving mail servers to not take any action on messages that fail DMARC authentication but to still generate reports. This is critical for gathering data on your email sending landscape. During this period, which should last a minimum of 14 days, you must analyze the aggregate reports received at your rua= address. These reports will detail all sources sending mail under your domain, identify any authentication alignment failures, and highlight potential spoofing attempts. This data is the foundation for all subsequent steps. A DMARC generator can assist in creating this initial record, but manual analysis of the reports is non-negotiable.

  • Objective: Collect comprehensive data on all email sources and identify authentication issues.
  • Duration: Minimum 14 days, or until all legitimate sending sources are identified and their alignment is confirmed.
  • Action: Analyze rua= reports to identify unknown senders and alignment failures.
The p=none policy provides visibility without risk. It is the only way to understand your actual email traffic and identify misconfigurations or unauthorized sending before enforcement.

Transitioning to Quarantine Policy (P=Quarantine)

Once you have a clear understanding of your email traffic and have addressed any alignment failures for legitimate sources, the next step is to move to a p=quarantine policy. This policy directs receivers to place messages that fail DMARC authentication into the recipient's spam or junk folder. This is a significant step towards enforcement, as it actively reduces the visibility of fraudulent emails while still providing a buffer against accidental rejection of legitimate mail. You can further control the rollout by using the pct= tag, gradually increasing the percentage of failing emails that are quarantined. For example, start with pct=25, monitor reports and user feedback for 7-14 days, and then incrementally increase pct to 50, 75, and finally 100.

  • Objective: Begin actively filtering non-compliant mail into spam folders.
  • Duration: 2-4 weeks, depending on monitoring and analysis.
  • Action: Implement p=quarantine and gradually increase pct= while monitoring reports and user complaints.

Enforcing the Reject Policy (P=Reject)

The final stage of the rollout is implementing a p=reject policy. With this policy, receiving mail servers are instructed to outright reject any messages that fail DMARC authentication. This provides the strongest protection against email spoofing and phishing attempts. Similar to the quarantine phase, it is advisable to use the pct= tag to gradually introduce the p=reject policy, starting with a low percentage (e.g., pct=10 or pct=25) and increasing it over time after confirming no legitimate mail is being blocked. This ensures that the transition to full enforcement is as smooth as possible. Achieving p=reject is the ultimate goal for robust email security and brand protection. This guide provides further details on achieving this.

Managing Subdomain Policies Effectively

When implementing DMARC, it is imperative to consider how your policy will affect subdomains. By default, a DMARC record published at the organizational domain level, such as _dmarc.example.com, will apply its policy to all subdomains that do not have their own explicit DMARC record. This inheritance mechanism can be a powerful tool for broad protection, but it requires careful management.

Understanding Subdomain Policy Inheritance

The sp= tag within a parent domain's DMARC record dictates the policy for its subdomains. If this tag is omitted, subdomains inherit the policy defined by the p= tag of the parent domain. For instance, if example.com has a DMARC record with p=reject, any subdomain like marketing.example.com or support.example.com will also be subject to a reject policy if no specific record exists for them. This default behavior is beneficial for locking down unused subdomains against opportunistic spoofing. However, if subdomains are actively used for sending email through third-party services that may not yet be fully DMARC-aligned, this inherited policy can inadvertently block legitimate mail.

Configuring Explicit Subdomain Policies (SP)

To manage subdomain behavior independently, the sp= tag is utilized. This tag allows you to define a specific DMARC policy for subdomains that overrides the parent domain's p= policy. For example, if your main domain example.com is set to p=reject, but you have a subdomain blog.example.com that uses a third-party platform for sending notifications, you might set sp=none for example.com's DMARC record. This ensures that the reject policy does not affect the blog.example.com subdomain while you work to align its sending services. Alternatively, you can set sp=quarantine if you wish to monitor subdomain traffic before full enforcement. The sp= tag is a critical component for granular control over your email authentication strategy.

Publishing Per-Subdomain DMARC Records

For complex environments with numerous subdomains, or where specific subdomains have distinct sending infrastructures and alignment requirements, publishing individual DMARC records for each subdomain is the most robust approach. This method provides the highest level of control and clarity. For example, _dmarc.marketing.example.com would contain its own DMARC record, which would take precedence over any sp= tag defined in the parent example.com record. This is particularly useful when a subdomain is managed by a different team or a third-party vendor, allowing them to implement their own DMARC policies and reporting without impacting the main domain. When implementing per-subdomain records, it is advisable to start with a monitoring-only policy (p=none) for each subdomain and gradually transition to stricter policies based on observed report data. Analyzing DMARC reports for subdomains is essential to understand authentication pass and fail rates [d61b].

When managing subdomains, always consider the sending practices associated with each. Unused subdomains should ideally be protected with a reject policy to prevent abuse. Actively used subdomains require careful alignment checks and potentially a phased rollout of stricter policies, starting with p=none and progressing through p=quarantine before reaching p=reject.

Publishing and Validating the DMARC Record

Once the DMARC record has been constructed, the subsequent phase involves its accurate publication within your Domain Name System (DNS) and subsequent validation to confirm correct implementation. This process is not merely procedural; it is critical for the DMARC policy to be recognized and enforced by receiving mail servers.

Locating the Correct DNS Host Record

To publish your DMARC record, you must access your domain's DNS management interface. This is typically provided by your domain registrar or hosting provider. Within this interface, you will need to create or modify a TXT record. The specific host or name field for a DMARC record is invariably _dmarc. For instance, if your domain is example.com, the full hostname for the DMARC record will be _dmarc.example.com. It is imperative to ensure that the record is not placed at the apex of your domain (e.g., using @ or leaving the host field blank), as this will render the DMARC policy ineffective. Some DNS providers automatically append the domain name, so entering _dmarc may suffice; always verify the fully qualified domain name (FQDN) in your provider's interface.

Syntax Verification and Propagation Checks

After publishing the TXT record, a period of DNS propagation is required for the changes to become visible across the internet. This can take anywhere from a few minutes to 48 hours, depending on DNS caching and TTL (Time To Live) settings. During this time, it is advisable to perform syntax verification. Common errors include incorrect tag separators (using commas instead of semicolons), misplaced spaces within tag values, or duplicate tags. A syntactically correct DMARC record is non-negotiable for proper function.

Utilizing DNS Validation Tools

Several online tools are available to assist in validating your DMARC record's presence and syntax. These tools query your DNS for the _dmarc TXT record and analyze its structure against DMARC specifications. They can identify common misconfigurations, such as:

  • The record being published at the incorrect hostname.
  • Invalid tag-value pairs.
  • Missing or incorrectly formatted reporting addresses (rua= or ruf=).
  • Incorrect alignment mode specifications (adkim= or aspf=).

Reputable tools like IntoDNS.ai or MXToolbox's DMARC checker provide detailed reports. These reports are invaluable for confirming that the record is correctly published and that the specified policy and reporting addresses are configured as intended. It is recommended to use these tools immediately after publishing and periodically thereafter, especially after making any changes to your DMARC record or DNS configuration. This proactive validation step prevents potential email delivery issues that could arise from an improperly configured DMARC record.

The process of publishing and validating your DMARC record is a critical checkpoint. Errors at this stage can negate all prior configuration efforts, leading to unintended consequences such as legitimate emails being rejected or quarantined. Rigorous verification using specialized tools is not optional; it is a mandatory step to confirm the integrity of your email authentication posture.

Ongoing DMARC Maintenance and Analysis

Interpreting Aggregate and Forensic Reports

Receiving DMARC aggregate reports is a continuous operational requirement. These reports, typically delivered daily in XML format to your specified rua= address, provide a critical overview of mail traffic claiming to originate from your domain. Without regular analysis of these reports, the value of your DMARC implementation is significantly diminished. While the raw XML can be challenging to parse manually, numerous tools and services exist to normalize this data into actionable insights. These tools are indispensable for identifying legitimate sending sources, detecting unauthorized usage, and pinpointing authentication failures. Forensic reports (ruf=), though less commonly sent due to privacy considerations, can offer granular detail on individual message failures when available.

Identifying and Remediating Authentication Failures

Authentication failures, as indicated in DMARC reports, require systematic investigation. A common failure scenario involves alignment issues, where SPF or DKIM passes individually but the authenticated domain does not match the From: header domain. This often occurs with third-party sending services that do not permit custom DKIM signing or envelope sender configuration. For instance, a service might sign with d=sendgrid.net instead of your domain, causing a DMARC alignment failure. Remediation involves configuring these services to use your domain for DKIM signing or adjusting the envelope sender (MAIL FROM) to align with your domain, potentially using a subdomain. Other failures may stem from incorrect SPF record configurations, such as exceeding the 10 DNS lookup limit, or DKIM key misconfigurations. Each failure type necessitates a specific corrective action, often involving coordination with the sending service provider.

Periodic Review of DMARC Record Tags and Alignment

Your DMARC record is not a static configuration. As your email sending infrastructure evolves, so too must your DMARC record. New services are adopted, existing ones are updated, and sending patterns change. It is imperative to conduct periodic reviews of your DMARC record tags and alignment settings. This includes verifying that your rua= address remains valid and is actively monitored, assessing the effectiveness of your chosen policy (p=), and confirming that alignment modes (adkim= and aspf=) are still appropriate. For example, a shift from relaxed to strict alignment might be considered if you have absolute control over all sending subdomains and wish to tighten security. Furthermore, regularly auditing your SPF record for lookup limits and ensuring DKIM keys are rotated according to best practices (e.g., every 6-12 months for 2048-bit keys) is a vital part of ongoing maintenance. This proactive approach prevents the gradual drift of your DMARC posture and maintains its effectiveness against evolving threats. Consider using tools like IntoDNS.ai to verify your DMARC setup and alignment periodically IntoDNS.ai.

The ongoing management of DMARC is as critical as its initial implementation. Neglecting regular analysis of reports and periodic review of record configurations can lead to a false sense of security, allowing legitimate mail to be blocked or, worse, enabling sophisticated spoofing attacks to bypass defenses. A structured maintenance schedule, incorporating report analysis and configuration audits, is non-negotiable for sustained email security and deliverability.

Keeping your email safe with DMARC is an ongoing job. It's not a set-it-and-forget-it kind of thing. You need to regularly check how it's working and what the results mean. This helps make sure your emails are getting to the right inboxes and not being faked by bad actors. Want to learn more about how to keep your email secure? Visit our website for easy-to-understand guides and tools.

Final Thoughts on DMARC Implementation

Implementing DMARC is not a one-time task; it requires ongoing attention. As email sending practices evolve and new services are adopted, your DMARC record and its associated SPF and DKIM configurations must be maintained. Regularly reviewing aggregate reports, auditing your DNS records, and staying informed about changes from major mailbox providers are necessary steps. Failing to do so can lead to a gradual degradation of email deliverability and increased vulnerability to spoofing. Treat DMARC as a continuous process, not a static configuration, to safeguard your domain's reputation and ensure reliable communication.

Configure DMARC with IntoDNS.ai

AI assistant and API workflow

This article is part of the IntoDNS.ai LLM and citation workflow. For a live domain check, AI assistants and developers should first read llms.txt or llms.json, then call /api/scan/quick?domain=example.com for the current DNS and email security score.

For this topic, use /api/email/dmarc?domain=example.com when you need focused data instead of the full quick scan.

Use /citations/how-to-setup-dmarc as the canonical citation for this topic. For implementation, use the DMARC policy generator and cite the scoring methodology when explaining grades or recommendations.

Frequently Asked Questions

What exactly is a DMARC record and why do I need one?

Think of a DMARC record as a set of instructions for email servers. It works with other email security tools called SPF and DKIM to help identify real emails from fake ones. By having a DMARC record, you're telling email providers what to do with messages that seem suspicious, like sending them to spam or rejecting them entirely. This is super important to stop people from faking your email address to send junk or scam messages, and it helps your own emails actually reach people's inboxes.

Do I really need SPF and DKIM before setting up DMARC?

Yes, absolutely! SPF and DKIM are like the foundation, and DMARC is the roof that makes it all work together. SPF checks if the email came from an approved server, and DKIM adds a digital signature to prove the email hasn't been messed with. DMARC uses the results from SPF and DKIM to decide what to do with the email and to report back to you. Without SPF and DKIM, DMARC can't do its job properly.

What does 'p=none', 'p=quarantine', and 'p=reject' mean in a DMARC record?

These are the different policies you can set for DMARC. 'p=none' means you just want to watch and collect reports without taking any action – it's like saying 'show me what's happening.' 'p=quarantine' tells servers to put suspicious emails into the spam or junk folder. 'p=reject' is the strictest, telling servers to block those emails completely. Most people start with 'p=none' to check things out before moving to stricter policies.

How long does it take for my DMARC record to start working?

After you add your DMARC record to your domain's settings, it usually takes a little while to show up everywhere. This is called 'propagation,' and it can take anywhere from a few minutes to 48 hours. Once it's set up, you'll start getting reports, but it might take a few days to see a clear picture of your email traffic.

What are aggregate and forensic reports, and why are they important?

Aggregate reports are like a daily summary that tells you which email addresses and services are sending mail using your domain. They help you spot any weird or unauthorized activity. Forensic reports, on the other hand, are like detailed incident reports for specific emails that failed checks, but many email providers don't send these anymore because of privacy rules. Both types of reports are super useful for understanding who's sending email from your domain and fixing any problems.

Can I use DMARC for my subdomains too?

Yes, you definitely can! You can set a main DMARC policy for your main domain, and then use a special tag called 'sp' to control how DMARC applies to your subdomains (like 'mail.yourdomain.com' or 'shop.yourdomain.com'). You can even set up separate DMARC records for each subdomain if they have different sending needs. This gives you a lot of control over your email security across your entire domain structure.

Share this article