reason=115: Sent from a Microsoft 365 tenant, From domain is an accepted domain

compauth reason=115 means the message came from a Microsoft 365 organisation where the From address domain is configured as an accepted domain. The usual code on internal tenant mail.

Published · Last verified · Maintained by TamingDNS

Verdict
Pass
Stamped as
compauth=pass reason=115
Family
1xx
Seen on
Microsoft 365 only

📖 What Microsoft Says

The message was sent from a Microsoft 365 organization where the From address domain is configured as an accepted domain.

Verbatim from Anti-spam message headers in Microsoft 365, "Composite authentication Reason codes". Everything below is our reading of it.

💬 What It Actually Means

The message originated inside a Microsoft 365 organisation, and the domain in the From address is one that organisation has configured as an accepted domain. Microsoft can see both ends of that, so it passes composite authentication on the strength of it.

What happens to the message

The message passes. Internal mail inside a tenant routinely lands here, which is why the code shows up so often in mailboxes on the same tenant as the sender.

What to do

Nothing, normally. This pass rests on the tenant relationship rather than on the sending domain's own DNS, so a domain can land on reason=115 while publishing SPF and DMARC that would not carry it anywhere else. If you are auditing whether your records work, test from outside the tenant.

⚠️ Easily confused with

reason=010 and reason=601 are the failure codes that also turn on the From domain being an accepted domain. Same relationship, opposite outcome.

📋 What It Looks Like in a Header

Paste your own headers into the email header analyser to see this line decoded against the rest of the message.

Authentication-Results: spf=pass (sender IP is 192.0.2.150)
    smtp.mailfrom=contoso.com;
    dkim=pass (signature was verified) header.d=contoso.com;
    dmarc=pass action=none header.from=contoso.com;
    compauth=pass reason=115

Mail from one mailbox to another inside the same tenant, where contoso.com is an accepted domain on that tenant.

🔧 Check It Yourself

A reason code is one line of one header. These read the rest of the picture: what the domain publishes, and whether the message that carried this code holds up.

Test your records from outside → Check DMARC alignment →
← All COMPAUTH reason codes