Outbound Wiki

DMARC policies

How DMARC tells receiving servers what to do when SPF or DKIM checks and alignment fail.

DMARC setup is a control loop: authenticate your mail, publish an observation policy, read what receiving servers see, and tighten the action. DMARC can pass with one aligned path; both SPF and DKIM do not need to pass.1 Find that working path for every legitimate sender before asking receivers to reject mail.

Before you publish

Map every sender that uses your domain and check how it authenticates. Legitimate mail needs a path through SPF or DKIM before DMARC starts making delivery decisions.

SPF and/or DKIM must be enabled for the domain before you use DMARC.2 DMARC tells receiving email servers what action to take when messages sent from your domain fail SPF or DKIM authentication.3

For each sender, ask:

  • What domain appears in the MAIL FROM address?
  • What domain appears in the From header?
  • Does SPF authorize the source for the MAIL FROM domain?
  • Do those domains align?

The MAIL FROM address transmits the message between SMTP email servers, while the From address appears as the sender in email clients.45 SPF checks whether the message came from an authorized source for the MAIL FROM domain.6 DMARC checks whether the MAIL FROM and From domains align.7 Verify that alignment for every sender before moving on.8

Publish the record

Once you understand the sending paths, add the policy in DNS. Start with an observational policy so you can see which legitimate streams still need repair.

Enable DMARC by creating a TXT record in DNS.9 The record is a line of text added to the domain according to the domain provider's instructions.10 For a domain record, use the DMARC hostname _dmarc.yourdomain.com.11

The DMARC TXT record includes a p= parameter, and p stands for policy.1213 Publish at least p=none while you confirm that alignment passes.14 With p=none, the receiving server takes no action against unauthenticated mail and sends a report to the mailto address listed in the record.15

The receiver can reject, quarantine, or deliver the message.16 A p=reject policy tells the receiving server to deny and block unauthenticated mail.17 Choose the action after you understand which messages will fail and why.

Read the reports

Use the reporting period to inventory your mail. Read what receivers saw, match each source to a legitimate sender, and repair authentication or alignment before increasing enforcement.

DMARC reports can reveal authentication issues and malicious activity involving messages sent from your domain.18 They also let you validate the results of the policy you published.19 For each reported source, ask:

  • Do we recognize this sender?
  • Does its SPF result cover the source?
  • Does its MAIL FROM domain align with the From domain?
  • Does its DKIM signature align?
  • If the source is legitimate, which authentication path will keep working when the policy becomes stricter?

Pay attention to the SPF result. DMARC treats both -all and ~all as SPF failures.20 A message with an SPF ~all failure and no DKIM signature can leave the DMARC policy effectively ignored.21

Tighten enforcement

Change the policy only after the reports give you a clean view of legitimate traffic. Move from observation to enforcement based on what you have confirmed, not what you expect the sending setup to do.

Use the reports to separate senders that need a DNS or authentication fix from messages that should be handled by the policy. When a message fails SPF or DKIM, receiving servers check the DMARC record and determine whether to reject it, quarantine it, or deliver it normally.22

If legitimate traffic still fails, fix its SPF coverage, DKIM signing, or alignment and keep observing. When the legitimate paths pass, choose the receiver action that matches your tolerance for unauthenticated mail. A strict reject policy can protect the domain from unauthenticated messages claiming to be from it, while quarantine gives the receiver a different handling instruction.16

What not to do

Avoid these configuration mistakes:

  • Do not enable DMARC before SPF and/or DKIM are set up, because messages sent from the domain will probably have delivery issues.23
  • Do not assume an SPF ~all failure gives the receiver an effective DMARC policy when the message has no DKIM signature; the policy is effectively ignored in that case.21
  • Do not assume a DMARC record for the parent domain affects only that domain. It applies to all subdomains unless a specific subdomain has its own DMARC record.24

Tool for this

Sending from your own mailboxes, safely paced

Intedat covers the basics here properly. It sends from the Gmail, Microsoft 365 or SMTP mailbox you already own, shows SPF, DKIM and DMARC checks for a custom domain and rechecks them, and the daily limit per mailbox tops out at 100 inside a sending window you set per workflow. It will not warm a mailbox up for you, so that part stays your job.

Open Intedat

Sources

  1. 1
    “So no, you don't need both to pass DMARC.”
  2. 2
    “You must turn on SPF and/or DKIM for your domain before you can use DMARC.”
  3. 3
    “DMARC tells receiving email servers what action to take on messages sent from your domain that don't pass SPF or DKIM authentication.”
  4. 4
    “The MAIL FROM address: The email address used in the transmission of the message between SMTP email servers.”
  5. 5
    “The From address: The email address in the From header field shown as the message sender in email clients.”
  6. 6
    “The message came from an authorized source for the domain used in the MAIL FROM address (the basic requirement of SPF).”
  7. 7
    “The domains in the MAIL FROM and From addresses in the message are aligned.”
  8. 8
    “Verify the domains in the MAIL FROM and FROM addresses align:”
  9. 9
    “You enable DMARC for a domain by creating a TXT record in DNS.”
  10. 10
    “A DMARC record is a line of text that you add to your domain, following your domain provider's instructions.”
  11. 11
    “DMARC What should the receiver do when SPF or DKIM fails? TXT at _dmarc.yourdomain.com You”
  12. 12
    “The value of the DMARC TXT record includes a “p=” parameter.”
  13. 13
    “The p stands for “policy.””
  14. 14
    “Publish DMARC at a minimum policy of p=none and make sure alignment passes.”
  15. 15
    “p=none: The receiving email server performs no action against unauthenticated email but instead sends a report to an email listed in the mailto: address on the DMARC record.”
  16. 16
    “The action options are reject, quarantine, or deliver the message.”
  17. 17
    “p=reject: The receiving email server denies and blocks unauthenticated email.”
  18. 18
    “You can also get reports that help you identify possible authentication issues and malicious activity for messages sent from your domain.”
  19. 19
    “The DMARC policy specifies what to do to messages that fail SPF or DKIM, and DMARC reports allow you to validate the results.”
  20. 20
    “DMARC treats -all (hard fail) and ~all (soft fail) as SPF failures.”
  21. 21
    “But the DMARC policy is effectively ignored for SPF ~all failures if the messages don't also contain DKIM signatures.”
  22. 22
    “When receiving servers get email messages from your domain that don't pass SPF or DKIM, they check your DMARC record to determine what action to take on the messages: Reject, quarantine, or deliver normally.”
  23. 23
    “If you don't set up SPF and/or DKIM before enabling DMARC, messages sent from your domain will probably have delivery issues.”
  24. 24
    “Note: DMARC records are "all-for-one" in that they apply to all subdomains for the domain unless a DMARC record exists for that specific subdomain.”