DMARC Policy Implementation and Monitoring

A technical guide to Domain-based Message Authentication, Reporting & Conformance (DMARC), covering policy options, implementation, and analyzing reports.

SpamBarometer Team
April 5, 2025
7 min read

Domain-based Message Authentication, Reporting & Conformance (DMARC) is a powerful email authentication protocol that helps protect your domain from fraudulent email activities. In this comprehensive guide, we'll dive deep into DMARC policy implementation and monitoring best practices. You'll learn how to set up DMARC for your domain, choose the right policy options, interpret DMARC reports, and effectively monitor your email ecosystem to maintain a secure and trustworthy email presence.

Understanding DMARC Fundamentals

Before we get into the nitty-gritty of DMARC implementation, it's crucial to understand the underlying concepts and components that make up the DMARC standard.

DMARC Primer: DMARC builds upon two existing email authentication mechanisms - Sender Policy Framework (SPF) and DomainKeys Identified Mail (DKIM). It allows domain owners to specify how receiving mail servers should handle messages that fail SPF and/or DKIM validation, and provides a reporting mechanism for visibility into email streams.
The following diagram illustrates the key components and flow of a typical DMARC setup:
Diagram 1
Diagram 1

SPF and DKIM: The Building Blocks

SPF and DKIM are the foundational technologies that enable DMARC to function effectively.

  • SPF allows domain owners to specify which IP addresses are authorized to send email on behalf of their domain. This is done by publishing a DNS TXT record containing the permitted IP ranges.
  • DKIM provides a way to cryptographically sign outgoing messages, verifying that the email originated from the claimed domain and hasn't been tampered with in transit. This involves adding a digital signature header to the message.

When a receiving mail server processes an incoming message, it performs SPF and DKIM checks to validate the message's authenticity. DMARC then comes into play, allowing the domain owner to specify what action should be taken if either of those checks fail.

DMARC Policy Options

DMARC policies are defined in a domain's DNS as a TXT record at the _dmarc subdomain (e.g., _dmarc.example.com). The policy contains instructions for receiving mail servers on how to handle messages that fail SPF and/or DKIM validation. There are three main policy options:

Policy Description
p=none The default policy. Messages are delivered as normal, but DMARC reports are generated and sent to the domain owner for monitoring purposes.
p=quarantine Messages that fail DMARC validation are treated as suspicious. They may be flagged, sent to the spam folder, or have a warning added to the subject line, depending on the receiving server's implementation.
p=reject The strictest policy. Messages that fail DMARC validation are rejected outright and never delivered to the recipient's inbox.

In addition to the policy type, domain owners can specify a percentage of messages to which the policy should be applied (e.g., pct=25 to apply the policy to 25% of failing messages), allowing for gradual rollout and testing.

Implementing DMARC for Your Domain

Now that we've covered the basics, let's walk through the process of setting up DMARC for your domain step-by-step.

Step 1: Assess Your Current Email Ecosystem

Before you begin, it's important to have a clear understanding of all the services and platforms that send email on behalf of your domain. This includes:

  • Your primary email service provider (e.g., Google Workspace, Microsoft 365)
  • Marketing platforms (e.g., Mailchimp, Constant Contact)
  • CRM systems (e.g., Salesforce, HubSpot)
  • Transactional email services (e.g., Sendgrid, Mailgun)
  • Any other systems or third-party providers that send email using your domain
Note: Be thorough in your assessment, as any service you overlook could cause legitimate messages to be flagged or rejected once you enforce a strict DMARC policy.

Step 2: Implement SPF and DKIM

If you haven't already done so, you'll need to set up SPF and DKIM for your domain before proceeding with DMARC. This process will vary depending on your email service provider and other platforms in use. Consult their documentation for specific instructions.

SPF Record Example
v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.0/24 include:_spf.example.com -all

This SPF record specifies that only servers in the IP ranges 192.0.2.0/24 and 198.51.100.0/24, as well as those listed in the _spf.example.com record, are authorized to send email for the domain. The -all directive indicates a hard fail for any other sources.

The following diagram shows the flow of an SPF check:
Diagram 2
Diagram 2
DKIM Record Example
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzmFP0iXY2OaQfQ7VvG9pBeqfmRmFMm4rIvRvKaRsNi8fm5EGBfvH75fWtA8+2nXFFYMi7nv2McmL1G43MwqX...

This DKIM record contains the public key used to validate the signature on messages sent from the domain. The actual signature is added as a header to each outgoing message.

The following diagram illustrates the DKIM signing and verification process:
Diagram 3
Diagram 3

Step 3: Publish Your DMARC Record

With SPF and DKIM in place, you're ready to publish your DMARC policy. Start by creating a TXT record at _dmarc.yourdomain.com with the following content:

Initial DMARC Record
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com; ruf=mailto:dmarc-forensics@yourdomain.com; fo=1

This initial record sets the policy to none, which means no action will be taken on failing messages, but aggregate (rua) and forensic (ruf) reports will be sent to the specified email addresses for monitoring. The fo tag indicates that forensic reports should be generated for both SPF and DKIM failures.

Best Practice: Start with a none policy to gather data and identify any issues before moving to a more strict policy. This helps avoid disrupting legitimate email flow.

Step 4: Monitor DMARC Reports

With your DMARC record published, receiving mail servers will start generating and sending XML reports to the addresses you specified. These reports provide valuable insights into your email streams, allowing you to identify unauthorized senders, misconfigurations, and potential threats.

The following diagram shows the flow of DMARC reporting:
Diagram 4
Diagram 4

There are two types of DMARC reports:

Aggregate reports provide a high-level overview of DMARC validation results for a given domain over a specific period (usually daily). They include data points such as:

  • Total messages received
  • Messages that passed/failed SPF, DKIM, and DMARC checks
  • Breakdown of messages by source IP address and sending domain
  • Policy actions applied (e.g., delivered, quarantined, rejected)

These reports help you identify trends, spot unauthorized senders, and gauge the overall health of your email streams.

Forensic reports (also known as failure reports) provide detailed information about individual messages that failed DMARC validation. These reports include:

  • The full message headers
  • The specific reason for the DMARC failure (e.g., SPF fail, DKIM fail, alignment issues)
  • The source IP address and sending domain
  • Authentication results from the receiving server

Forensic reports are invaluable for troubleshooting specific issues and investigating potential phishing or spoofing attempts.

To effectively monitor your DMARC reports, consider using a dedicated DMARC report analyzer tool or service. These solutions aggregate and parse the XML reports, presenting the data in a more user-friendly format with visualizations, alerting capabilities, and actionable insights.

Troubleshooting Common DMARC Issues

As you implement DMARC and begin monitoring your reports, you may encounter some common issues that need to be addressed. Here are a few scenarios and how to troubleshoot them:

If you notice legitimate messages sent from your domain are failing DMARC validation, it typically indicates an SPF or DKIM misconfiguration. To troubleshoot:

  1. Check your SPF record to ensure it includes all authorized sending IP addresses and domains.
  2. Verify that your DKIM keys are properly configured and that all sending services are signing messages correctly.
  3. Ensure proper alignment between the sending domain (From header) and the SPF and DKIM domains.

If messages sent from third-party services (e.g., marketing platforms, CRMs) are failing DMARC, you'll need to work with those providers to ensure proper authentication:

  • Make sure the service supports SPF and DKIM signing for your domain.
  • Verify that the service is included in your SPF record and that they are signing messages with a valid DKIM key.
  • If the service sends mail using their own domain, ensure they support DMARC-friendly features like custom return-path or CNAME aliasing to maintain alignment.

If your DMARC reports show failing messages from unknown sources, it could indicate attempted spoofing or phishing using your domain. To

Was this guide helpful?
Need More Help?

Our team of email deliverability experts is available to help you implement these best practices.

Contact Us