Microsoft 365 inbound emails

Microsoft 365 inbound emails failing DMARC do not get rejected even with a DMARC policy set to “p=reject”. This is done to avoid blocking legitimate emails that may get lost during transmission due to email security policies on the sender’s side.

Why does Microsoft 365 not reject DMARC fail emails?

Microsoft 365 doesn’t reject emails that fail the DMARC check in order to:

  • Avoid false negatives that may result from email forwarding scenarios and the usage of mailing lists
  • Avoid legitimate emails from being rejected due to configuration problems on the sender’s side

Due to this, Microsoft 365 deems it better to mark messages as spam instead of outright rejecting them. Users can still leverage Microsoft to receive these emails in their inboxes by: 

  1. Creating a “safe sender” list 
  2. Creating a transport rule, also known as an Exchange Mail Flow Rule

While your legitimate emails failing DMARC may be worrisome, this tactic may result in malicious emails evading DMARC checks to make their way into users’ inboxes. 

You can check out this document by Microsoft 365 for Inbound DMARC configuration in their Exchange Online platform

How to Create Microsoft 365 Transport Rule to Quarantine Unauthorized Inbound Emails?

To address these concerns regarding Office 365 DMARC deployment, we can create an Exchange Mail Flow/ Transport rule using the sender’s message header. 

Case 1: Setting up Transport Rule to Quarantine Inbound Emails from Internal Domains

If mail is received by internal domains in the “From” address, we can set up a transport rule to quarantine the emails. This will lodge the email into the user’s quarantine folder instead of their inbox. 

The rule verifies: 

  • Whether the From field matches your own domain 
  • Whether DMARC is failing for the message

This would determine what action needs to be taken.

Note: Before you configure this rule it is recommended that you deploy it on a restricted user base to test the soil before going for large-scale deployment. Make sure your authorized senders are passing DMARC, failing which would indicate misconfigurations and may lead to the loss of legitimate emails. 

To set up the rule follow the steps below: 

  1. Log in to your Exchange Online admin center 
  2. Go to Mail flow > Rules
  3. Create a new rule by selecting the Add icon > Create a new rule
  4. Set “Match sender address in message” to “Header”
  5. In Apply this rule if…, you can select the condition you want to apply this rule to from the drop-down menu. Here we want to configure the rule if the DMARC authentication result is “fail” and if the “From” domain matches your own domain name
  6. In Do the following…, you can now select your action and set it to “Deliver the message to the hosted quarantine” 
  7. Click Save

Case 2: Setting up Transport Rule to Quarantine Inbound Emails from External Domains

If you receive emails from domains that do not fall within the scope of your organization (external domains) that fail DMARC, you can set up a disclaimer that would warn users of a possible phishing attempt or malicious intent. 

Note: Prepending a disclaimer for external domains failing DMARC can be beneficial if you don’t want to outright restrict emails. More often than not misconfigured protocols on the sender’s side may contribute to failed authentication checks. 

To set up the rule follow the steps below: 

  1. Log in to your Exchange Online admin center 
  2. Go to Mail flow > Rules
  3. Create a new rule by selecting the Add icon > Create a new rule
  4. Set “Match sender address in message” to “Header”
  5. In Apply this rule if…, you can select the condition you want to apply this rule to from the drop-down menu. Here we want to configure the rule if the DMARC authentication result is “fail”. 
  6. In Do the following…, you can now select your action and set it to “Prepend the disclaimer..” and add set your desired disclaimer
  7. You can now add an exception to this rule like in case the “From” header matches your domain name
  8. Click Save

How to Create Microsoft 365 Transport Rule to Reject Unauthorized Inbound Emails?

If you want to set up an internal rule to reject unauthorized inbound emails, follow the steps below: 

  1. Log in to your Exchange Online admin center 
  2. Go to Mail flow > Rules
  3. Create a new rule by selecting the Add icon > Create a new rule
  4. Set “Match sender address in message” to “Header”
  5. In Apply this rule if…, you can select the condition you want to apply this rule to from the drop-down menu. Here we want to configure the rule if the DMARC authentication result is “fail”. 
  6. In Do the following…, you can now select your action and set it to “Reject the message with the explanation..” followed by a short message explaining the reason for rejection. 
  7. Click Save

Some Important Points to Remember 

  1. DMARC doesn’t protect against spoofing lookalike domains and is only effective against direct-domain spoofing and phishing attacks
  2. A DMARC policy set to “none” would not quarantine or reject emails failing DMARC, only p=reject/quarantine can protect against spoofing
  3. DMARC reject is not to be taken lightly as it may lead to the loss of legitimate emails. 
  4. For safer deployment, configure a DMARC report analyzer to monitor your email channels and authentication results on the daily