Blog · Dmarc

Why your email security vendor rejects mail when you enforce DMARC (and how to fix it)

Why enforcing DMARC breaks vendor email flow

You set your DMARC policy to p=reject. Your own email security vendor starts rejecting your mail.

This is not a bug. It is a predictable consequence of how most third-party email security gateways handle forwarding. The fix is not to lower your DMARC policy. The fix is to fix the alignment.

Understanding DMARC alignment and why vendors fail it

DMARC has two ways to verify that an email comes from you: SPF alignment and DKIM alignment.

SPF alignment checks that the envelope-from domain (the domain used in the SMTP MAIL FROM command) matches the header-from domain (the domain shown in the email's From: header).

DKIM alignment checks that the domain in the DKIM signature matches the header-from domain.

For DMARC to pass, at least one of these alignments must succeed.

Here is where vendors break it. When your email security vendor receives an inbound message, scans it, and forwards it to your mail server, they often rewrite the envelope-from to their own domain. The original SMTP conversation was between the sender and the vendor, not between the sender and your mail server.

If your DMARC policy is p=reject and the vendor's envelope-from domain does not align with your header-from domain, receivers reject the message. You set DMARC to reject spoofed mail. Your vendor's forwarding infrastructure is generating messages that fail DMARC alignment.

The envelope-from vs header-from mismatch explained

Your From: header says `sender@example.com`. The original sender's SPF record covers `sender-example-com.mail.vendor.net` because the vendor handled the SMTP delivery. The receiver's DMARC check sees two different domains and fails alignment.

This problem is invisible at p=none. At p=quarantine or p=reject, alignment failures cause rejections.

The same problem can happen with DKIM. If your vendor does not DKIM-sign forwarded mail with your domain's key, the DKIM signature either does not exist or carries the vendor's domain instead of yours.

Before you can fix this, you need to identify exactly which vendor IPs and envelope-from domains are failing DMARC for your domain. That means reading your DMARC aggregate reports. DMARCFlow is built specifically for parsing these XML reports and surfacing which vendor IPs are causing alignment failures, how often, and for which receiving domains. Without reading aggregate reports, you are guessing about the cause of your rejections.

How to fix DMARC alignment for your email security vendor

Three practical approaches exist. The right one depends on what your vendor supports.

Approach 1: Ask your vendor to sign with your DKIM key

Some email security vendors DKIM-sign forwarded mail using your domain's DKIM key. This passes DKIM alignment even if the envelope-from is the vendor's domain. Ask your vendor if they support this. Proofpoint calls this inbound relay DKIM signing. Mimecast calls it inbound processing. Not all vendors support it. Some charge extra.

Approach 2: Add the vendor's envelope-from domain to your SPF record

If your vendor uses a consistent envelope-from domain for forwarded mail, add that domain to your SPF record. This passes SPF alignment. The tradeoff is that you are authorizing the vendor's infrastructure to send as your domain, which is what DMARC is designed to control. Only use this approach if you trust the vendor completely.

Approach 3: Use a subdomain for vendor forwarding

Route vendor-forwarded mail through a subdomain with its own looser DMARC policy. Your main domain stays at p=reject. The vendor subdomain uses p=none or a custom policy that accommodates the vendor. This separates concerns so vendor forwarding does not interfere with your main domain's spoofing protection.

Step 1 - Identify which vendor domains are failing DMARC

You need specific data before you can fix anything. Which vendor IPs are failing? Which receiving domains are rejecting? How frequently?

DMARC aggregate reports contain this data. They arrive as XML files from receivers who have processed mail from your domain. They show which IPs sent mail, which SPF and DKIM results occurred, and which alignment outcome followed. The raw data is not human-readable.

DMARCFlow parses these reports automatically and shows you which vendor IPs are causing failures across your entire domain portfolio. Without a tool like this, reading aggregate reports manually for multiple domains is not practical.

Step 2 - Request SPF alignment or subdomain delegation

Once you know which vendor causes failures, contact them with a specific request. The most useful question to ask: "Does your gateway support DKIM signing forwarded mail using our domain's DKIM selector? If not, provide the envelope-from domain you use so we can add it to our SPF record."

Document the vendor's response. If they cannot support DKIM signing and you do not want to add them to your SPF, use the subdomain approach.

Step 3 - Verify alignment before enforcing p=reject

Before setting p=reject, test. Change your policy to p=quarantine and monitor for two weeks. If vendor failures drop to zero, you can safely move to p=reject. If failures persist at p=quarantine, fix the alignment first.

Common vendor configurations that cause DMARC failures

Most email security vendors default to behavior that fails DMARC alignment when you enforce it strictly:

Vendor MX replacement: The vendor receives mail first, scans it, then forwards using their own envelope-from.

No DKIM signing: The vendor does not DKIM-sign forwarded mail, or signs with their own domain key.

Multi-tenant infrastructure: A vendor serving multiple customers uses shared forwarding infrastructure, so one customer's mail may appear to come from another customer's envelope-from domain.

Hybrid configurations: Some vendors support DKIM signing in some deployment modes but not others.

What to do if your vendor cannot fix alignment

If your vendor cannot or will not support proper alignment:

Keep your DMARC policy at p=none. No enforcement, but you still receive aggregate reports.

Use p=quarantine instead of p=reject. Failing mail gets tagged, not rejected.

Route vendor-forwarded mail through a subdomain with its own DMARC policy.

Replace the vendor with one that supports DKIM signing for forwarded mail.

Lowering your DMARC policy should be a temporary last resort, not a permanent decision. Spoofing protection has real value. Find a vendor that supports it rather than giving up the protection.