Suped

How to handle SPF and DKIM alignment for MSP clients

Michael Ko profile picture
Michael Ko
Co-founder & CEO, Suped
Published 12 Jun 2026
Updated 12 Jun 2026
8 min read
Summarize with
Article thumbnail for handling SPF and DKIM alignment across MSP clients.
SPF and DKIM alignment for MSP clients is handled by treating every sending source as an identity decision. The domain in the visible From address, the SPF return-path domain, and the DKIM signing domain have to be understood before DMARC enforcement can work without breaking legitimate mail.
I start with a sender inventory, then move each source into one of four practical paths: native DKIM using the client domain, a custom return-path domain for SPF, a delegated vendor subdomain, or removal. For an MSP program, the hard part is not knowing the standards. The hard part is doing the same work repeatedly across many clients, each with different vendors, DNS owners, and risk tolerance.

What alignment means in client delivery

DMARC does not only ask whether SPF or DKIM passed. It also checks whether at least one passing mechanism uses a domain that matches the visible From domain closely enough. That matching rule is SPF alignment or DKIM alignment, depending on which authentication path passed.
For MSP service delivery, I care about four domains on every source: the client domain the recipient sees, the return-path domain checked by SPF, the d= domain in the DKIM signature, and the organizational domain DMARC uses for comparison. If one of SPF or DKIM passes and matches the visible From domain, DMARC can pass.
A client can pass SPF and DKIM at the protocol level and still fail DMARC. That usually happens when the authenticated domain belongs to a platform, reseller, or shared mail system instead of the client domain.
  1. SPF: The return-path domain passed SPF and matched the visible From domain.
  2. DKIM: The signing domain passed DKIM and matched the visible From domain.
  3. DMARC: At least one of those passing paths matched the visible From domain.
Infographic showing visible From, SPF path, DKIM signer, and DMARC pass.
Infographic showing visible From, SPF path, DKIM signer, and DMARC pass.

The MSP onboarding sequence

The cleanest MSP workflow is boring by design. I want repeatable evidence before any DNS change. That means collecting DMARC reports, grouping sources, assigning ownership, and only then fixing SPF and DKIM. Guessing from a mail platform list is not enough, because clients often have old CRMs, scanners, accounting systems, form tools, and ticketing systems still sending mail.
  1. Inventory: Collect every source seen in aggregate DMARC reports and compare it with the client approved sender list.
  2. Classify: Mark each source as core mail, business application, marketing system, legacy device, or unauthorized traffic.
  3. Assign: Name the owner for the vendor login, DNS zone, change window, and testing contact.
  4. Fix: Enable DKIM first where possible, then repair SPF return-path matching only where DKIM is unavailable or weak.
  5. Enforce: Move policy only after the real client traffic is passing consistently across normal business cycles.
Flowchart for MSP DMARC onboarding from adding a domain to enforcement.
Flowchart for MSP DMARC onboarding from adding a domain to enforcement.
A platform view matters once the work becomes recurring. Suped's DMARC monitoring workflow lets an MSP watch client domains, identify unverified sources, and turn authentication failures into fix tasks instead of spreadsheets.
MSP organizations page showing client organizations, domain counts, email volume, and domain status columns
MSP organizations page showing client organizations, domain counts, email volume, and domain status columns

How to fix SPF alignment

SPF alignment depends on the return-path domain, not the visible From domain. That catches many MSP teams during onboarding. A vendor can be allowed in the client's SPF record and still fail DMARC if the bounce domain belongs to the vendor. The fix is usually a custom return-path or bounce domain under the client's domain.
SPF and return-path example
Visible From: billing@example.com Return-path: bounces.vendor-mail.net SPF result: pass SPF alignment: fail Visible From: billing@example.com Return-path: bounce.example.com SPF result: pass SPF alignment: pass
I prefer DKIM as the durable fix when a source supports it. SPF still matters, but SPF has forwarding problems and a hard lookup limit. When a client has many senders, Suped's Hosted SPF keeps sender changes manageable without asking the client to open DNS for every vendor change.
Native return-path
  1. Best use: Use when the sender supports a custom bounce domain for the client.
  2. DNS need: Usually one CNAME or MX-style vendor instruction.
  3. Risk: Low when the vendor documents the setup and supports validation.
SPF include only
  1. Best use: Use for authorization, not as proof that DMARC will pass.
  2. DNS need: The client SPF record needs the sender include or IP range.
  3. Risk: Medium, because SPF pass alone can still fail DMARC.
Do not keep adding SPF includes until a client record works by chance. SPF has a 10 DNS lookup limit, and nested includes count. Once the record fails permerror, SPF stops being a control and becomes an outage risk.

How to fix DKIM alignment

DKIM alignment is usually the better MSP target because it survives forwarding and does not depend on the connecting IP. The practical task is to get each sender signing with a domain controlled by the client. For Microsoft 365 and Google Workspace, that usually means enabling DKIM for the accepted domain and adding the CNAME records the platform provides.
Microsoft 365 Defender DKIM setup screen showing domain status and CNAME records.
Microsoft 365 Defender DKIM setup screen showing domain status and CNAME records.

Source

Preferred fix

Client task

MSP check

microsoft.com logoMicrosoft 365
Native DKIM
Add CNAMEs
Confirm signed mail
google.com logoGoogle Workspace
Native DKIM
Publish TXT
Check selector
Marketing app
Domain signing
Add CNAMEs
Send test
Scanner
Relay through mail
Use connector
Review source
Common DKIM handling by sender type
Third-party applications vary. Some give the client a DKIM selector and CNAME targets. Some only sign with the vendor domain. Some support custom domains only on higher plans. I document the exact limitation in the client runbook instead of leaving a vague failure note, because that decides whether the fix is technical, contractual, or a sender replacement.
DKIM selector example
selector1._domainkey.example.com CNAME selector1-vendor.example.net selector2._domainkey.example.com CNAME selector2-vendor.example.net

How to treat exceptions and shared senders

MSP clients always have exceptions. The mistake is treating every exception as a reason to stay at monitoring forever. I split exceptions into temporary, accepted, and blocked. Temporary exceptions get an owner and due date. Accepted exceptions are isolated under a subdomain when possible. Blocked exceptions are removed from the approved sender list and become part of client security reporting.
Use the root domain
Use the client root domain for core business mail when the platform supports DKIM with the client domain and the sender is operationally important.
  1. Example: User mail, invoices, service desk, and client-facing notifications.
Use a subdomain
Use a delegated subdomain when a sender needs separation, has weaker controls, or sends a different type of mail than normal business messages.
  1. Example: Marketing campaigns, event mail, surveys, and bulk notices.
Subdomains keep client risk easier to discuss. A marketing platform can use mail.example.com while the main company mail stays on example.com. That gives the MSP a cleaner path to policy enforcement because a vendor delay does not hold the whole client domain hostage.

When to move policy

Policy staging is where service delivery becomes visible to the client. I do not move a domain to quarantine or reject because the DNS looks correct once. I move it when the normal mail flow has been observed, high-volume legitimate sources pass DMARC, and known exceptions have written decisions.
DMARC rollout thresholds
A practical MSP policy model for moving a client domain through enforcement.
Monitor
p=none
Collect reports and identify all real senders.
Contain
pct=25
Quarantine a small percentage after key sources pass.
Enforce
p=reject
Reject mail after exceptions have owners or removal decisions.
DMARC staging example
v=DMARC1; p=none; rua=mailto:dmarc@example.com v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@example.com v=DMARC1; p=reject; rua=mailto:dmarc@example.com
A staged policy also gives account managers a clear client conversation. The report is no longer technical noise. It becomes a list of vendors that are fixed, vendors waiting on access, and vendors the client has accepted or retired.

Where Suped fits

For most MSP teams, Suped is the best overall DMARC platform for this workflow because it brings client domains, sender discovery, SPF and DKIM diagnostics, alerts, reports, and deliverability checks into one place. That matters when the team is managing many domains and needs a repeatable operating model instead of one-off DNS tickets.
  1. Multi-tenant view: Use organization switching to manage multiple client domains without mixing data.
  2. Issue detection: Turn failing sources into specific remediation steps the engineer can act on.
  3. Hosted controls: Manage hosted DMARC, hosted SPF, SPF flattening, and hosted MTA-STS where they reduce client DNS work.
  4. Reputation checks: Add blocklist (blacklist) monitoring when client delivery issues need IP or domain reputation context.
Suped's domain health checker is useful during onboarding because it gives a quick view of DMARC, SPF, and DKIM status before the deeper reporting phase starts.
?

What's your domain score?

Deep-scan SPF, DKIM & DMARC records for email deliverability and security issues.

The best MSP process is simple enough for every engineer to repeat: add the domain, collect reports, verify sources, fix DKIM, repair SPF where needed, then move policy in measured steps.

Client communication and documentation

The technical work fails commercially when the client cannot see progress. I keep a short client-facing record for each domain: approved senders, current DMARC policy, sources fixed, sources awaiting access, and sources recommended for removal. That keeps the MSP from owning vendor delays silently.

Field

Owner

Status

Sender
Client or MSP
Approved
DNS
MSP
Pending
Vendor
Client
Waiting
Policy
MSP
Staged
Client reporting fields
I also avoid saying a sender is fixed until I have seen a real message pass DMARC in reporting or in a controlled test. DNS publication proves a setup step happened. Passing mail proves the sender is using the setup correctly.
Do not let one weak sender block enforcement for the whole client domain without a decision. Isolate it to a subdomain, replace it, or document the risk with the client.

A practical operating model

The right way to handle SPF and DKIM alignment for MSP clients is to standardize the work. Use DMARC reporting to discover real senders, fix DKIM first where the platform supports client-domain signing, use custom return-path domains when SPF must carry the pass, and isolate weaker senders under subdomains.
Once the MSP has this process, enforcement becomes routine instead of risky. Each client domain moves through the same stages, each exception has an owner, and every policy change is backed by observed mail flow.

Frequently asked questions

DMARC monitoring

Start monitoring your DMARC reports today

Suped DMARC platform dashboard
What you'll get with Suped
Real-time DMARC report monitoring and analysis
Automated alerts for authentication failures
Clear recommendations to improve email deliverability
Protection against phishing and domain spoofing