Blog · Dmarc
Why DMARC Alignment Breaks After an Email Platform Migration (And How to Prevent It)
The problem nobody warns you about
You migrate your email from on-prem Exchange to Microsoft 365. You update your DNS records. Your team gets their new mailboxes. Everything looks fine. A week later, your DMARC reports show a spike in alignment failures -- emails that pass SPF, pass DKIM, but still fail DMARC.
Nobody changed your DMARC policy. Your From address is the same. But the authenticated identity underneath changed when you changed your sending infrastructure, and now DMARC rejects what it used to accept.
This is the migration alignment trap. It is common, predictable, and avoidable if you know what to look for.
How DMARC alignment actually works
To understand why migrations break alignment, you need to separate two things that people routinely conflate: authentication and alignment.
Authentication is whether SPF or DKIM passes for a given email. A mail server checks: does the sending IP appear in this domain's SPF record? Does this email have a valid DKIM signature from this domain? Those checks either pass or fail.
Alignment is whether the domain that authenticated the email matches the domain a human sees in their inbox. When you read an email from support@acme.com, your mail client shows acme.com as the sender. But which acme.com? The one that owns the SPF record? The one that signed the DKIM? Or the one in the From header?
DMARC alignment requires at least one authentication mechanism (SPF or DKIM) to pass and use a domain that matches your From header domain. There are two alignment modes:
- Relaxed alignment: the organizational domain must match. If your From header says acme.com and your SPF or DKIM authenticates corp.acme.com, that still counts as aligned because the same organization owns both.
- Strict alignment: the domains must be identical. corp.acme.com does not align with acme.com.
Most organizations use relaxed alignment. Strict alignment is harder to maintain and easier to break during infrastructure changes.
Why migrations break it
During a platform migration, you are changing the infrastructure that handles authentication -- not the From domain, but the sending servers, IP addresses, and DKIM signing keys. That is exactly what DMARC alignment checks.
Here are the specific ways common migration scenarios break alignment:
On-prem Exchange to Microsoft 365
Your old server sends from mail.acme.com. Your new M365 tenant authenticates with a Microsoft-owned domain like prod.outlook.com or a tenant-specific domain. If your DMARC policy requires alignment to acme.com and M365 is signing with a Microsoft domain, alignment fails. You need to configure M365 to send using your own domain and sign DKIM with your own domain selector.
Google Workspace to another provider
Google Workspace DKIM uses a Google-managed selector by default. When you move to M365 or another platform, you must generate new DKIM keys for your domain and publish them in your DNS. If you forget this step, your old Google DKIM signature becomes invalid and your new platform is not signing at all -- meaning alignment depends entirely on SPF, which will also break if you do not update your SPF record with the new server IPs.
Hosting provider to hosting provider
If you are moving between shared hosting providers, both your SPF record and your DKIM keys likely need updating. Shared hosting environments often give you a small range of sending IPs. When you move, those IPs change and your old SPF record no longer covers the new ones.
Post-merger domain consolidation
After a company acquisition, you might consolidate all email under a single domain. If you do this without checking DMARC alignment first, you can end up with your DMARC policy covering domain A while your new sending infrastructure authenticates for domain B -- and neither aligns with the From header you are now using.
What it looks like in your DMARC reports
Alignment failures are visible in your aggregate reports. Look for rows where SPF result and DKIM result both show "pass" but DMARC result shows "fail". That is the signature of an alignment problem.
In a standard DMARC aggregate report (XML), the auth_results section will show something like:
spf_result pass
dkim_result pass
dmarc fail
SPF and DKIM both pass, but DMARC fails because the domain that authenticated (shown in the domain tag for SPF or the d= value in the DKIM-Signature header) does not match the From header domain. This is the key diagnostic signal: look at which domain is actually authenticating, not just whether authentication passed.
The migration checklist: before you cut over
Run these steps before you flip the DNS switch.
1. Map your current authentication setup. Which domains are in your SPF record? Which DKIM selectors do you have published? Are you using relaxed or strict alignment? Capture this baseline so you know what you are replacing.
2. Test alignment in a staging environment. If your new platform lets you send test messages to internal addresses, send one and check the authentication headers. Look for Authentication-Results or ARC headers. Does the new platform authenticate with your domain, or with its own infrastructure domain?
3. Check DKIM key generation for the new platform. Most cloud platforms require you to generate DKIM keys and publish them as DNS TXT records yourself. Do this before migration day, not after.
4. Plan your SPF update in advance. Your old SPF record covers your old server IPs. Your new platform will send from different IPs. Draft the updated SPF record with your new provider's IP ranges ready to deploy.
5. Decide on alignment mode before you migrate. If you are currently using strict alignment and switching platforms, that is a high-risk move. Relaxed alignment is more forgiving during transitions.
The migration checklist: during cutover
1. Monitor DMARC reports daily during the transition window. The window where both old and new infrastructure may be sending is the highest-risk period for alignment failures. Check your aggregate reports every day. Tools like DMARCFlow track this continuously and alert you within hours of a new failure pattern appearing, rather than waiting for your next manual review.
2. Watch for new failure sources. After migration, you may see new source IPs in your DMARC reports that are not yours. These are often the new platform's relay infrastructure. Some platforms (especially shared environments) use intermediate relays that can cause alignment issues.
3. Look for DKIM signature changes. If your old platform was DKIM-signing and your new platform is not yet, you will see DKIM failures. If your new platform is signing with a different domain than your From header, you will see alignment failures without DKIM failures.
4. Do not rush to p=reject during the transition window. Keep p=none or p=quarantine until you have confirmed alignment is stable across all your sending flows.
The migration checklist: after migration completes
1. Verify SPF covers all new sending IPs. Check your DNS and make sure your SPF record includes every IP range your new platform uses for sending. Many platforms have separate IP ranges for outbound relay versus direct sending.
2. Confirm DKIM is signing with your domain. Send a test message to a known-good external address and check the DKIM-Signature header. The d= tag should show your domain, not your platform's domain.
3. Compare pre-migration and post-migration failure rates. If your baseline had near-zero alignment failures and you now see any, something is still misaligned. A practical threshold: if fewer than 1% of your total email volume shows alignment failures, you are likely looking at minor forwarding or one-off relay issues. Above 1%, investigate before escalating. Do not escalate your DMARC policy until you understand the new baseline.
4. Update your DMARC policy if alignment is stable. Once you have confirmed that SPF and DKIM are both aligned to your domain and the new infrastructure is generating clean reports, you can consider moving from p=none to p=quarantine.
FAQ
Can I use the same DKIM key after migrating to a new platform?
No. DKIM keys are platform-specific. You generate a key pair, publish the public key in DNS, and keep the private key on the platform that signs outgoing mail. When you move platforms, you must generate new keys, publish the new public key, and configure your new platform to use the new private key.
My SPF record is already at the 10 DNS lookup limit. What do I do during a migration?
Migrations often require adding new SPF includes. If you are already at the limit, you need to simplify your existing SPF record before you can add new mechanisms. Common simplifications: remove redundant includes, use SPF macros to consolidate mechanisms, and remove any third-party services you no longer use.
I am using a shared sending platform. Can I get proper DMARC alignment?
It depends on whether the platform lets you send using your own domain as the authenticated identity. Some platforms sign with their own domain, which means alignment fails by default. Look for platforms that support custom DKIM signing with your domain and let you control your own SPF records.
Should I use strict or relaxed alignment during a migration?
Relaxed alignment is safer during migrations because it tolerates subdomain differences. If you are using strict alignment and switching platforms, you are making an already complex change even riskier. Switch to relaxed alignment before the migration and switch back after you have confirmed everything is stable.
How long should I wait before escalating my DMARC policy after a migration?
Wait at least two weeks and one full billing cycle of aggregate report data before moving from p=none to p=quarantine. Most regular sending patterns (newsletter sends, transactional emails, automated notifications) follow a weekly or monthly cycle. You want to see all of your normal patterns appear correctly in reports before you trust that alignment is truly stable.