✅ Microsoft 365 Email – Not Receiving Emails Troubleshooting
🔹 1. Check DNS & MX Records
- Go to your domain registrar/DNS manager and ensure MX records are correctly set for Microsoft 365:
MX → yourdomain-com.mail.protection.outlook.com (Priority: 0)
- Also verify:
- SPF record:
v=spf1 include:spf.protection.outlook.com -all - CNAME/Autodiscover and TXT/verification records exist
- SPF record:
Test via:
nslookup –type=mx yourdomain.com
Or use: Microsoft DNS Checker
🔹 2. Microsoft 365 Admin Center
- Login to admin.microsoft.com
- Check:
- User mailbox is active and licensed
- No email delivery restrictions on mailbox
- No mail forwarding or inbox rules causing redirection
- Email is not hitting quarantine or junk folder
🔹 3. Use Message Trace Tool
- Go to Microsoft 365 Admin Center > Exchange Admin Center > Mail Flow > Message Trace
- Search for recent failed deliveries
🔹 4. Check Email Routing (If hybrid setup)
- If you’re using third-party DNS hosting or previous cPanel hosting:
- Ensure Email Routing is NOT set to “Local Mail Exchanger” in cPanel
- cPanel → Email Routing → Set to Remote Mail Exchanger
🔹 5. Test Email Reception
- Send test emails from:
- Gmail / Outlook / other external accounts
- Check bounce-back/NDR message (if any) — it will give clues
🔹 6. Firewall / Port Blocking (rare)
- Ensure that your network or ISP is not blocking Microsoft IPs (outbound SMTP/IMAP ports).
🔹 7. Mailbox Quarantine or Spam Filter
- Use https://security.microsoft.com → Email & collaboration > Review > Quarantine
- Emails might be stuck in quarantine
====================================================================
Here’s a DNS template for Microsoft 365 (Microsoft Exchange Online) setup — you can use this to configure DNS records in your domain registrar or DNS provider (e.g., domain registrar, Cloudflare, cPanel, etc.).
📘 Microsoft 365 DNS Template
Replace
yourdomain.comwith your actual domain.
🔹 1. MX Record (Mail Routing)
| Type | Name | Value | Priority | TTL |
|---|---|---|---|---|
| MX | @ | yourdomain-com.mail.protection.outlook.com | 0 | 3600 |
You’ll get the exact MX value from Microsoft 365 Admin Center → Setup → Domains.
🔹 2. SPF (TXT Record)
| Type | Name | Value | TTL |
|---|---|---|---|
| TXT | @ | v=spf1 include:spf.protection.outlook.com -all | 3600 |
🔹 3. DKIM (CNAME Records)
These are generated per domain. You’ll need to enable DKIM in Microsoft 365 Security & Compliance portal before records appear.
| Type | Name | Value | TTL |
|---|---|---|---|
| CNAME | selector1._domainkey | selector1-yourdomain-com._domainkey.yourdomain.onmicrosoft.com | 3600 |
| CNAME | selector2._domainkey | selector2-yourdomain-com._domainkey.yourdomain.onmicrosoft.com | 3600 |
🔹 4. DMARC (Optional but Recommended)
| Type | Name | Value | TTL |
|---|---|---|---|
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:[email protected] | 3600 |
For stricter policies, change
p=nonetop=quarantineorp=reject.
🔹 5. Autodiscover (CNAME)
| Type | Name | Value | TTL |
|---|---|---|---|
| CNAME | autodiscover | autodiscover.outlook.com | 3600 |
🔹 6. MS Verification TXT Record (Used for domain verification)
| Type | Name | Value | TTL |
|---|---|---|---|
| TXT | @ | MS=msXXXXXXXX (from Microsoft) | 3600 |
Found in Microsoft 365 Admin > Setup > Domains > Verification
✅ Notes:
- TTL (Time to Live) can usually be left at default (e.g., 3600 seconds).
- After adding all records, go to Microsoft 365 → Admin → Domains → Check DNS status.
- Use tools like mxtoolbox.com or
nslookupto verify.