Moving from DMARC p=none to p=reject Safely
You've set up DMARC with p=none. That's a great start. You're getting aggregate reports, and you're seeing data. But p=none doesn't actually do anything to stop spoofing or phishing. It's an observation mode, a critical first step, but not the destination. Your goal, for maximum email security and brand protection, should be p=reject.
Moving to p=reject means that any email claiming to be from your domain that fails DMARC checks will be rejected outright by the receiving server. This is the strongest enforcement policy and significantly reduces your domain's vulnerability to impersonation. However, moving too fast can inadvertently block legitimate email, causing major headaches. This article will guide you through the process, focusing on understanding alignment failures and how to fix them, ensuring a smooth transition to p=reject.
Understanding DMARC Alignment Failures
DMARC relies on two underlying email authentication protocols: SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail). For an email to pass DMARC, it must pass either SPF or DKIM, and critically, that pass must be aligned with your Header From domain.
Let's break down alignment in plain English:
- Header From Domain: This is the email address visible to the recipient (e.g.,
info@yourdomain.com). - SPF Alignment: For SPF to align, the domain specified in the
MAIL FROM(orReturn-Path) header, which is often hidden from the end-user, must either exactly match theHeader Fromdomain (strict alignment) or be a subdomain of it (relaxed alignment).- Failure Scenario: You send an email via a third-party service like Mailchimp. Mailchimp often sets the
MAIL FROMdomain to something likemc.us19.mailchimp.com. If yourHeader Fromisyourdomain.com, SPF might pass formc.us19.mailchimp.com(because Mailchimp's SPF record allows their sending servers), but it will fail DMARC alignment becausemc.us19.mailchimp.comis notyourdomain.comor a subdomain of it.
- Failure Scenario: You send an email via a third-party service like Mailchimp. Mailchimp often sets the
- DKIM Alignment: For DKIM to align, the domain specified in the
d=tag within the DKIM signature must either exactly match theHeader Fromdomain (strict alignment) or be a subdomain of it (relaxed alignment).- Failure Scenario: You send an email via HubSpot. HubSpot might sign the email with
d=hubspot.com. If yourHeader Fromisyourdomain.com, DKIM might pass forhubspot.com, but it will fail DMARC alignment becausehubspot.comis notyourdomain.comor a subdomain of it.
- Failure Scenario: You send an email via HubSpot. HubSpot might sign the email with
DMARC aggregate reports, like those parsed by Aligned, are crucial here. They show you which emails are failing DMARC and, more importantly, why (SPF alignment failure, DKIM alignment failure, or both).
Why p=none Isn't Enough
While p=none provides invaluable visibility into your email ecosystem, it offers no protection. Malicious actors can still spoof emails from your domain, and receiving mail servers will deliver them to inboxes (or spam folders, depending on their own filtering). This poses a significant risk:
- Phishing Attacks: Employees, customers, or partners can be targeted with convincing phishing emails that appear to originate from your legitimate domain.
- Brand Damage: Successful spoofing can erode trust in your brand and lead to reputational harm.
- Financial Loss: Successful phishing attacks can lead to data breaches, ransomware, or direct financial fraud.
Moving to p=quarantine (send to spam/junk) and then p=reject (block entirely) is essential to actively combat these threats.
The Phased Approach to p=reject
Transitioning to p=reject requires a methodical, step-by-step approach. Rushing this process is the fastest way to inadvertently block legitimate email.
Step 1: Establish Baseline Visibility (p=none)
You're likely already here. Your DMARC record looks something like this:
v=DMARC1; p=none; rua=mailto:dmarc_reports@yourdomain.com;
- Action: Collect and analyze aggregate reports for several weeks (or even months, depending on your email volume and complexity). Use a DMARC report parser like Aligned to make sense of the XML data.
- Goal: Identify all legitimate sources sending email on behalf of your domain. This includes internal applications, marketing platforms (Mailchimp, SendGrid, HubSpot), transactional email services (AWS SES, Postmark), CRMs, HR systems, and even forgotten legacy servers. Crucially, identify which of these legitimate sources are failing DMARC alignment.
Step 2: Fix Alignment Issues for Legitimate Senders
This is the most critical and time-consuming step. For every legitimate sender that is failing DMARC alignment, you need to configure SPF and/or DKIM correctly.
- For SPF Alignment Failures:
- Problem: Your
MAIL FROMdomain is notyourdomain.comor a subdomain, even if SPF passes for the third-party domain. - Solution:
- Include all legitimate sending IPs/domains in your SPF record: Ensure your
v=spf1record includesinclude:statements for all your SaaS providers (e.g.,include:spf.protection.outlook.com,include:_spf.google.com,include:sendgrid.net). - **Custom
- Include all legitimate sending IPs/domains in your SPF record: Ensure your
- Problem: Your