DMARC Syntax
DMARC syntax is the format and structure of the DMARC record that is added to the DNS of the email domain. The DMARC record is a TXT record that starts with the prefix v=DMARC1;
, followed by a series of tags and values separated by semicolons. Each tag represents a different aspect of the DMARC policy, and each value defines the setting or option for that tag. The tags and values are case-insensitive, but the order of the tags does not matter.
DMARC Syntax Example
DMARC records published in DNS follow this format:
txt
v=DMARC1; p=none; sp=none; rua=mailto:[email protected]; pct=100
Each of the tags are explained in the following tables:
p= Tag
Meaning | Values | Examples |
---|---|---|
Required. The policy for the domain. | none: No action, only monitor and report. quarantine: Move the message to the spam or junk folder. reject: Reject the message and do not deliver. | p=quarantine |
sp= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The policy for the subdomains of the domain. If not specified, the same policy as the parent domain is applied. | none: No action, only monitor and report. quarantine: Move the message to the spam or junk folder. reject: Reject the message and do not deliver. | sp=quarantine |
pct= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The percentage of messages that the policy applies to. If not specified, the default is 100%. | A number between 0 and 100. | pct=50 |
rua= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The email addresses to send aggregate reports to. Multiple addresses can be specified, separated by commas. | A list of mailto: URIs. | rua=mailto:[email protected],mailto:[email protected] |
ruf= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The email addresses to send forensic or failure reports to. Multiple addresses can be specified, separated by commas. | A list of mailto: URIs. | ruf=mailto:[email protected] |
adkim= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The alignment mode for DKIM. If not specified, the default is r (relaxed). | r: Relaxed. The domains are considered to align if the organizational domains match. s: Strict. The domains are considered to align if they are exactly the same. | adkim=s |
aspf= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The alignment mode for SPF. If not specified, the default is r (relaxed). | r or s | aspf=r |
fo= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The conditions for generating failure reports. If not specified, the default is 0 (all). | 0: Generate a report if all the authentication methods fail. 1: Generate a report if any of the authentication methods fail. d: Generate a report if DKIM fails. s: Generate a report if SPF fails. | fo=1 |
rf= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The format of the failure reports. If not specified, the default is afrf (Authentication Failure Reporting Format). | afrf or iodef (Incident Object Description Exchange Format). | rf=iodef |
ri= Tag
Meaning | Values | Examples |
---|---|---|
Optional. The interval for sending aggregate reports, in seconds. If not specified, the default is 86400 (24 hours). | A positive integer | ri=43200 |
Related Topics
- What is DMARC? - Introduction to DMARC and its purpose
- How Does DMARC Work? - Technical details about DMARC operation
- Why is DMARC Important? - Benefits and significance of DMARC
- Limitations of DMARC - Current constraints and challenges
- DMARC Reports - Introduction to DMARC reporting, frequency and limitations