How to create a DMARC record

How to create a DMARC record? Once SPF and DKIM are in place, you configure DMARC by adding policies to your domain’s DNS records in the form of TXT records (just like with SPF or DKIM).

The TXT record name should be “_dmarc.yourdomain.com.” where “yourdomain.com” is replaced with your actual domain name (or subdomain).

Here are common tags used in DMARC TXT records:

Tag Name Required Purpose Sample
v required Protocol version v=DMARC1
p required Policy for domain p=quarantine
pct optional % of messages subjected to filtering pct=20
rua optional Reporting URI of aggregate reports rua=mailto:CUSTOMERID@for.dmarcanalyzer.com
ruf optional Addresses to which message-specific forensic information is to be reported (comma-separated plain-text list of URIs). ruf=mailto:CUSTOMERID@for.dmarcanalyzer.com
rf optional Format to be used for message-specific forensic information reports (comma-separated plain-text list of values). rf=afrf
aspf optional Alignment mode for SPF aspf=r
adkim optional Alignment mode for DKIM adkim=r

See the DMARC Tag Registry for other available tags.

When you log in on app.dmarcanalyzer.com go to “DNS Records” to generate your DMARC record.

Only the v (version) and p (policy) tags are required. Three possible policy settings, or message dispositions, are available:

  • none – Take no action. Log affected messages on the daily report only.
  • quarantine – Mark affected messages as spam.
  • reject – Cancel the message at the SMTP layer.

Alignment mode (aspf / adkim) refers to the precision with which sender records are compared to SPF and DKIM signatures, with the two possible values being relaxed or strict. represented by “r” and “s” respectively. In short, relaxed allows partial matches, such as subdomains of a given domain, while strict requires an exact match.


Make sure to include your email address with the optional rua tag to receive the daily reports. If you want to use DMARC Analyzer to analyze your reports, make sure to use the DNS record generation tool to get the aggregate- and forensic feedback e-mail addresses.


Creating a TXT record with the appropriate name and value is different for every domain host. Contact us if you need help setting it up with your provider.

It should be rather simple and may look something like this in the generator:

How to create a DMARC record - Generate DNS

and like this at your domain host:

How to create a DMARC record?

 

Example report

The daily reports come in an XML format. Read them to better understand your mail flow. The reports help you ensure your outbound mail sources are authenticating properly. Ensure that the various IPs sending email claiming to come from your domain are indeed legitimate, configure them properly with DKIM or add them to their SPF range. The reports also help administrators take fast action when they have a block policy in place if a new mail source comes online or an existing email source’s configuration breaks.

Here is an excerpt of a report showing results for messages sent from a couple of IP addresses, one sent directly and the other forwarded. Both messages passed:

<record>
    <row>
        <source_ip>207.126.144.129</source_ip>
        <count>1</count>
        <policy_evaluated>
            <disposition>none</disposition>
        </policy_evaluated>
    </row>
    <identities>
        <header_from>yourdomain.com</header_from>
    </identities>
    <auth_results>
        <dkim>
            <domain>yourdomain.com</domain>
            <result>pass</result>
            <human_result></human_result>
        </dkim>
        <spf>
            <domain>yourdomain.com</domain>
            <result>pass</result>
        </spf>
    </auth_results>
</record>
<record>
<row>
    <source_ip>207.126.144.131</source_ip>
    <count>1</count>
    <policy_evaluated>
        <disposition>none</disposition>
        <reason>
            <type>forwarded</type>
            <comment></comment>
        </reason>
    </policy_evaluated>
</row>
<identities>
    <header_from>yourdomain.com</header_from>
</identities>
<auth_results>
    <dkim>
        <domain>yourdomain.com</domain>
        <result>pass</result>
        <human_result></human_result>
    </dkim>
    <spf>
        <domain>yourdomain.com</domain>
        <result>pass</result>
    </spf>
</auth_results>
</record>

Deploy slowly

We strongly recommend ramping up DMARC use slowly by employing these policies in this order. First, monitor your traffic and look for anomalies in the reports, such as messages that are not yet being signed or are perhaps being spoofed. Then, when you’re comfortable with the results, change the TXT record policy setting from “none” to “quarantine.” Once again, review the results, this time in both your spam catch and in the daily DMARC reports. Finally, once you’re absolutely sure that all of your messages are signed, change the policy setting to “reject” to make full use of DMARC. Revisit reports to ensure your results are acceptable.

Similarly, the optional pct tag can be used to stage and sample your DMARC deployment. Since 100% is the default, passing “pct=20” in your DMARC TXT record results in one-fifth of all messages affected by the policy actually receiving the disposition instead of all of them. This setting is especially useful once you decide to quarantine and reject email. Start with a lower percentage to begin with and increase it every few days.

So, a conservative deployment cycle would resemble:

  1. Monitor all.
  2. Quarantine 1%.
  3. Quarantine 5%.
  4. Quarantine 10%.
  5. Quarantine 25%.
  6. Quarantine 50%.
  7. Quarantine all.
  8. Reject 1%.
  9. Reject 5%.
  10. Reject 10%.
  11. Reject 25%.
  12. Reject 50%.
  13. Reject all.

Attempt to remove the percentages to complete the deployment.

As always, review your daily reports.