RedScore.ai

Fixes

Email Security · Updated 2026-05-02

DMARC Reporting (rua)

rua= sends DMARC aggregate reports to a mailbox you designate. Without it, your DMARC policy runs blind. Add a rua= destination.

DMARC aggregate reports (rua=) are XML summaries that participating receivers (Gmail, Microsoft, Yahoo, etc.) send to a mailbox you designate, listing every IP that sent mail "from" your domain along with whether SPF and DKIM passed. Without rua=, your DMARC policy runs blind: you cannot see who is spoofing you, whether your legitimate senders pass alignment, or whether your policy is breaking real mail. RedScore passes only when rua= is present on the DMARC record.

This check only runs when your domain has a non-null MX. If you have only a null MX or no MX, it shows as not applicable rather than failing.

How the verdict maps to evidence

  • Pass: a v=DMARC1 record exists with at least one rua=mailto:... destination.
  • Warn: a DMARC record exists but rua= is not set.
  • Fail: no DMARC record at _dmarc.yourdomain.tld.

Fail: no DMARC record

If you have no DMARC at all, fix that first. The DMARC Policy Enforcement guide walks through publishing a record. The reporting check passes naturally once your DMARC record includes rua=.

Warn: DMARC exists but no rua=

Add a rua= tag pointing at a mailbox you control. The mailbox can be on the same domain or a different one (subject to authorization, see below).

Choosing a reporting destination

Three reasonable options:

  • Self-hosted parser. Point rua= at a mailbox like dmarc@yourdomain.tld and run a parser that ingests the XML attachments. Open-source options exist (parsedmarc, dmarc-srg). Best for teams with engineering capacity to maintain a parser.
  • Managed service. Use a hosted DMARC reporting platform (dmarcian, Postmark DMARC Digests, EasyDMARC, Valimail, Red Sift OnDMARC). They give you a forwarding address like xxxx@<service>.com to put in rua= and provide a dashboard. Most have a free tier suitable for a single domain.
  • Both. Point rua= at multiple destinations: a managed dashboard for daily review plus a self-hosted archive for long-term retention. Comma-separate the addresses.

DMARC record with rua= (single destination)

_dmarc.yourdomain.tld.   IN  TXT  "v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@yourdomain.tld; adkim=s; aspf=s"

DMARC record with multiple rua= destinations

_dmarc.yourdomain.tld.   IN  TXT  "v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@yourdomain.tld,mailto:abc123@dmarc.postmarkapp.com; adkim=s; aspf=s"

Cross-domain reporting authorization

If your rua= address is on a different domain (typical with managed services), the destination domain must publish a DMARC reporting authorization record so receivers know to send reports there. Most managed services pre-authorize their domain for all customers, so you do not need to do this. If you self-host the destination on a different domain, publish:

Cross-domain authorization at the destination domain

yourdomain.tld._report._dmarc.destdomain.tld.   IN  TXT  "v=DMARC1"

Without this record, receivers will refuse to send reports cross-domain (RFC 7489 section 7.1).

Verify the fix

  • Run dig +short TXT _dmarc.yourdomain.tld @1.1.1.1 and confirm rua=mailto:... appears in the record.
  • Wait 24 to 48 hours for the first wave of reports. Major receivers (Gmail, Microsoft, Yahoo) send daily.
  • Open the destination mailbox or dashboard and confirm reports are arriving with non-zero traffic counts. If your domain has mail traffic but no reports show up, check for typos in the mailto address or for bounces from your inbound mail provider.
  • Re-run the RedScore lookup.

Common pitfalls

  • Reporting address on a non-DMARC-compliant domain. Some receivers refuse to send rua reports to mailboxes on domains that themselves fail DMARC. Use a domain that passes DMARC for the reporting mailbox.
  • rua= but no parsing pipeline. Raw XML reports are unreadable by humans and pile up fast. Pick a service or set up a parser before you need to look at the data.
  • Forgetting cross-domain authorization. If you self-host on a separate domain, the destination domain needs a _report._dmarc TXT record (see above). Managed services usually handle this for you.
  • Setting ruf= as well. Forensic reports are largely deprecated by major receivers for privacy reasons. Skip ruf= unless your reporting platform asks for it.
  • Mailbox capacity. A high-traffic domain can receive thousands of reports per day. Make sure your reporting mailbox has the storage and an automated archive policy.
  • Typos in the rua address. A typo means you are publishing a DMARC policy with no actual reporting destination, which fails this check the same as no rua= at all.

What to do next

See how these recommendations apply to your site's current scan results.

Scan domain