Northwestern Tideline · guide

DMARC p=reject for companies: how to stop email sent in your name

SPF, DKIM and DMARC in plain words, the three policies none, quarantine and reject, a five-step rollout with the exact records for Microsoft 365 and Google Workspace, and what 890 Lithuanian company domains showed on 2026-10-24: fewer than one in ten at p=reject.

Contents8 sections

Email has no built-in proof of who sent it. A message can carry From: direktorius@pavyzdys.lt without ever passing through that company's mail server, and the receiver cannot tell unless the domain owner publishes the rules. SPF, DKIM and DMARC are those rules: three DNS records that cost nothing.

Below: the three records, the exact values for the two providers that handled mail for about half of the domains in our sample, and a rollout order that does not block your own invoices.

SPF, DKIM and DMARC in plain words

SPF is a TXT record that lists the servers allowed to send mail with your domain in the envelope address, the record receivers use to verify that mail "is from a known, designated source of mail for that domain" (Microsoft's wording). It ends with a rule for everyone else: -all (hard fail, Microsoft's recommendation) or ~all (soft fail, Google's recommendation).

DKIM is a signature. Your provider signs each outgoing message with a private key; the public key sits in DNS under a selector such as selector1._domainkey or google._domainkey. If the message was altered or never signed, DKIM fails.

DMARC ties both to the address people see. RFC 7489, which defined it in March 2015, stores the owner's preferences "as DNS TXT records in subdomains named "_dmarc"". A message passes if SPF or DKIM passes and the domain that passed aligns with the From header; it fails only when both fail.

The record also names where receivers send aggregate reports (rua), typically once a day, which is how you learn who is sending in your name.

The three policies

RFC 7489 section 6.3 defines the p tag with three values:

PolicyWhat the RFC says the domain owner requestsForged message
p=none"no specific action be taken regarding delivery of messages"Delivered; you receive reports
p=quarantinefailing mail "be treated by Mail Receivers as suspicious"Junk folder, quarantine or a marker, at the receiver's discretion
p=rejectreceivers "reject email that fails the DMARC mechanism check"Refused during delivery

Two more tags matter: pct, the "percentage of messages from the Domain Owner's mail stream to which the DMARC policy is to be applied", default 100; and sp, a separate policy for subdomains, which otherwise inherit the parent record. The alignment tags adkim and aspf default to relaxed (r).

The RFC Editor now lists RFC 9989 (Proposed Standard, May 2026), together with the reporting documents RFC 9990 and RFC 9991, as the documents that obsolete it.

What Lithuanian company domains publish

On 2026-10-24 we read the public DNS of 890 Lithuanian company domains from our own prospect lists (method in our study of Lithuanian company websites). The sample leans towards established manufacturing, logistics, wholesale and service firms; it is not representative of Lithuanian companies.

DMARC policyDomainsShare of 890
No DMARC record43548.9 %
p=none24727.8 %
p=quarantine14316.1 %
p=reject657.3 %

The first two rows together: 682 of 890 domains (76.6 %) have no enforcing policy, while SPF was present on 866 (97.3 %); the first step is almost universal, the last one rare. Mail for 378 domains (42.5 %) is handled by Microsoft 365 and for 76 (8.5 %) by Google Workspace, so the examples below cover those two.

The five-step rollout

Both providers document the same order. Microsoft's page: "The goal is to get to a p=reject DMARC policy for all of your custom domains and subdomains, but you need to test and verify along the way to prevent destination email systems from rejecting good mail because of unintentional DMARC failures."

  1. Inventory every sender. The mail provider, the invoicing system, the CRM, the newsletter tool, the website form, the scanner. Each must pass SPF or DKIM in an aligned way. Microsoft recommends a separate subdomain for services you do not control, such as bulk mail.
  1. Publish one SPF record. Only one SPF record is allowed per domain; Microsoft notes that several records make SPF return a permanent error (permerror). Microsoft 365 only: v=spf1 include:spf.protection.outlook.com -all. Google Workspace only: v=spf1 include:_spf.google.com ~all. Microsoft states that more than 10 DNS lookups makes SPF fail permanently and Google that a record can hold up to 10 include: tags, so keep the list short.
  1. Turn on DKIM for each sender. Microsoft 365: two CNAME records, selector1._domainkey and selector2._domainkey, pointing to the targets shown on the DKIM tab of Email authentication settings in the Defender portal, then enable signing there. Google Workspace: Apps, Google Workspace, Gmail, Authenticate email; generate a 2048-bit key if your domain provider supports it (otherwise 1024-bit), add the TXT record at google._domainkey at your domain provider, then Start authentication; Google says it can take up to 48 hours to work. Every third-party sender must either sign with your domain or use your domain in the envelope address, or it fails alignment once you enforce; Microsoft's troubleshooting table lists both fixes.
  1. Publish DMARC with p=none and a report address. Google asks you to allow 48 hours after setting up SPF and DKIM before setting up DMARC; both providers recommend a dedicated mailbox or group for reports. The aggregate reports list every IP address that sent in your name and whether it passed; Microsoft suggests reviewing them weekly during deployment and monthly once stable. Recognised senders that fail are configuration work; unrecognised senders are the reason you are doing this.
  1. Move to quarantine, then reject, using pct. Once legitimate senders pass, set p=quarantine. Microsoft suggests widening in steps of pct=10, pct=25, pct=50, pct=75 and pct=100, then the same for p=reject, starting with low-volume subdomains and "saving the parent domain for last".

The records, line by line

pavyzdys.lt is a placeholder; use your own domain and report mailbox.

RecordHost nameValue
SPF, Microsoft 365 onlypavyzdys.ltv=spf1 include:spf.protection.outlook.com -all
SPF, Google Workspace onlypavyzdys.ltv=spf1 include:_spf.google.com ~all
DKIM, Microsoft 365selector1._domainkey.pavyzdys.lt and selector2._domainkey.pavyzdys.ltCNAME to the two targets shown in the Defender portal
DKIM, Google Workspacegoogle._domainkey.pavyzdys.ltTXT v=DKIM1; k=rsa; p=<public key>
DMARC, monitoring_dmarc.pavyzdys.ltv=DMARC1; p=none; rua=mailto:dmarc@pavyzdys.lt
DMARC, partial quarantine_dmarc.pavyzdys.ltv=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@pavyzdys.lt
DMARC, enforced_dmarc.pavyzdys.ltv=DMARC1; p=reject; rua=mailto:dmarc@pavyzdys.lt
DMARC, domain that never sends mail_dmarc.pavyzdys.ltv=DMARC1; p=reject; with SPF v=spf1 -all

The last row is for parked domains: Microsoft recommends v=DMARC1; p=reject; and SPF v=spf1 -all for registered domains that "no one on the internet should expect to receive mail from". Neither Gmail nor Microsoft 365 sends forensic (ruf) reports, so the aggregate rua address is what matters.

How to check your own domain

Look up the TXT record at _dmarc.yourdomain.lt, for example with nslookup -type=TXT _dmarc.yourdomain.lt. No record, or p=none, means a forged message from your domain is delivered like any other. Then read the -all or ~all at the end of your SPF record and confirm in your provider's console that DKIM signing is on.

These checks read public DNS only; nothing is sent to or tested on your servers.

Email authentication is one layer on the Tideline page, next to PHP supported versions in 2026 and the wider picture in cybersecurity for companies in the age of artificial intelligence.

For a company covered by NIS2 in Lithuania, a published DMARC policy is also a fact a supervisor can read without asking; see NIS2 in Lithuania: KSIS and what companies must do.

Northwestern Tideline reads the public DNS of the domains a company names in writing, keeps the sender inventory, reads the aggregate reports monthly and proposes each policy step for a person to approve. To have your domain's records read and a rollout written down, send us the domain.

This guide describes public documentation as read on 2026-10-24 and a general procedure, not your own DNS, providers or senders.

Frequently asked questions

What is the difference between DMARC p=none, p=quarantine and p=reject?

RFC 7489 defines them. With p=none the domain owner requests no specific action on failing mail; it is a monitoring stage that only produces reports. With p=quarantine failing mail is to be treated as suspicious, which receivers typically implement as the junk folder or quarantine. With p=reject receivers are asked to reject it during delivery. Only quarantine and reject affect a forged message.

How do I check whether my domain has DMARC?

Look up the TXT record at _dmarc.yourdomain with any public DNS tool, for example nslookup -type=TXT _dmarc.yourdomain. If nothing comes back, there is no DMARC record; if it comes back with p=none, the policy does not stop forged mail yet. The check reads public DNS only.

Can I go straight to p=reject?

For a domain that never sends mail, yes: Microsoft recommends v=DMARC1; p=reject; together with an SPF record of v=spf1 -all. For a domain that sends mail, both Microsoft and Google recommend starting at p=none with a report address, fixing every legitimate sender that fails, then moving to quarantine and reject, widening with the pct tag. Skipping that order can block your own mail wherever a sender was forgotten.

Which DMARC record should a Google Workspace or Microsoft 365 company use?

The DMARC record is the same for both: a TXT record at _dmarc.yourdomain starting with v=DMARC1; p=none; rua=mailto:<report mailbox> and ending at p=reject. What differs is SPF (include:spf.protection.outlook.com for Microsoft 365, include:_spf.google.com for Google Workspace) and DKIM (two selector CNAMEs enabled in the Defender portal for Microsoft 365, a TXT record at google._domainkey generated in the Admin console for Google Workspace).

How common is p=reject among Lithuanian companies?

In our sample of 890 Lithuanian company domains read on 2026-10-24, 65 (7.3 %) were at p=reject and 143 (16.1 %) at p=quarantine; 435 (48.9 %) had no DMARC record and 247 (27.8 %) were at p=none. The sample comes from our own prospect lists and is not representative of all Lithuanian companies.

Sources

  1. 01

    RFC 7489, Domain-based Message Authentication, Reporting, and Conformance (DMARC), March 2015: section 6.1 (TXT records in subdomains named _dmarc), section 6.3 (tags p with none/quarantine/reject, pct default 100, rua, sp, adkim and aspf default r)

    Open the source accessed 

  2. 02

    RFC Editor: RFC 9989, Domain-Based Message Authentication, Reporting, and Conformance (DMARC), Proposed Standard, May 2026; obsoletes RFC 7489 and RFC 9091 (RFC 7489 is also listed as obsoleted by the reporting documents RFC 9990 and RFC 9991)

    Open the source accessed 

  3. 03

    Microsoft Learn: Set up DMARC to validate email in Microsoft 365 (record syntax, p=none → quarantine → reject rollout, pct increments 10/25/50/75/100, subdomain for services you do not control, parked domains, dedicated report mailbox, weekly/monthly report review, no forensic reports, alignment fixes)

    Open the source accessed 

  4. 04

    Microsoft Learn: Set up SPF to identify valid email sources for your Microsoft 365 domain (v=spf1 include:spf.protection.outlook.com -all, one SPF record per domain, 10 DNS lookup limit, v=spf1 -all for parked domains)

    Open the source accessed 

  5. 05

    Microsoft Learn: How to use DKIM for email in your custom domain (CNAME records selector1._domainkey and selector2._domainkey, DKIM tab of the Email authentication settings page in the Defender portal, 1024- and 2048-bit keys)

    Open the source accessed 

  6. 06

    Google Workspace Admin Help: Set up DMARC (_dmarc host name, example record, p=none first, pct, 48 hours of SPF/DKIM before DMARC, dedicated report mailbox, ruf not supported by Gmail, tag defaults)

    Open the source accessed 

  7. 07

    Google Workspace Admin Help: Set up SPF (v=spf1 include:_spf.google.com ~all recommended, each domain needs its own record, up to 10 include: tags, up to 48 hours to start working)

    Open the source accessed 

  8. 08

    Google Workspace Admin Help: Set up DKIM (Apps > Google Workspace > Gmail > Authenticate email, 2048-bit key if the domain provider supports it, otherwise 1024, default selector google, TXT v=DKIM1; k=rsa; p=... at google._domainkey, Start authentication, up to 48 hours)

    Open the source accessed 

  9. 09

    Northwestern Solutions: Lithuanian company websites in October 2026 (890 domains; 435 no DMARC record, 247 p=none, 143 p=quarantine, 65 p=reject; SPF on 866; Microsoft 365 on 378, Google Workspace on 76)

    Open the source accessed 

How this guide was prepared

Northwestern Solutions wrote this guide from the texts of the laws and other sources listed above. The legal statements were compared with those texts; the date of the check is shown with the sources. The parties and amounts in the examples are invented. This is not legal or tax advice: for an unusual transaction, ask an accountant.

Found an inaccuracy? .