Chapter 1 of 7 ยท Find the setup
About this video
BillionVerify is not affiliated with or endorsed by Microsoft. File verification needs a paid account.
Video transcript
Find the setup
Microsoft 365 business domains don't all behave alike. Some refuse a fake address. Some accept anything. Some turn the check away. Each one reads differently in your results. First, how we know a domain is on Microsoft 365. Its MX record points at Microsoft's protection servers. That's the only sign we need, and it tells us nothing yet about the mailbox. So we ask the server about a made-up address on that domain. No email goes out. How it treats that address shows the setup. It can refuse it, accept it, block us, or give no clear answer.
When the test is refused
Refused is the good case. The server knows its own mailboxes, so its answer about yours counts. A yes gives valid, reason smtp_deliverable. A rejection gives invalid, reason mailbox_not_found. These are the results you can act on straight away. Send to the valid ones and drop the invalid ones.
When the test is accepted
Accepted means something else. The domain is set up as an internal relay. It takes every recipient from the outside, so its yes can't separate a real mailbox from a made-up one. You'll see status catch-all with the reason m365_internal_relay. Its score is 0.55, the lowest of any catch-all reason. It still uses one credit. Checking it again won't settle anything. The relay is part of how the domain is set up, and a retry flag only ever appears on unknown.
When the test is blocked
Sometimes Microsoft refuses the connection itself. The reason is m365_ip_rep_block, a refusal based on IP reputation. That's a verdict on the connection, and the mailbox never came up. This one is worth another run. It's free, and it's marked retryable. If the next check gets a firm answer, that answer uses a credit.
When the test is unclear
Then there's the unclear test. Your address was accepted, but the test didn't prove which setup this is. That lands on catch-all with the reason catch_all_inferred, and a score of 0.6.
Reading a Microsoft 365 list
Here's the catch. Relay and inferred both show the same status. Only the reason tells them apart, and the Quick Verify card doesn't show one. Use the ev_reason column in a file job's CSV. Now each reason has a job. Deliverable goes out. Not found comes off. Relay and inferred go to a separate file. The IP block goes back for another run. That separate file is your decision, and the mail itself decides it. A contract or a receipt can usually go. A cold bulk campaign needs your own call. On credits, valid, invalid and both catch-all reasons use one each. The block uses none. So read Microsoft 365 by setup. Test refused, trust the answer. Test accepted, make a call. Test blocked, try later.
Get started free
20 free credits every day you use your account, up to 600 a month. No credit card required. Start at billionverify.com.
More in Mailbox Providers
All email verification videosBillionVerify pricing
Start free, then pay for what you verify. Pick a plan or buy credits once.
billed yearly $96
Save 60%$0.0004 / per credit
All 240,000 credits arrive at once. Use them anytime.
Choose your credits
Included in every paid plan
- 240,000 credits / year
- Single email verification
- Bulk email verification
- Email Finder
- Bulk Email Finder
- Company Search
- Live SMTP mailbox check
- Real-time API + batch processing
- CSV & Excel upload support
- Comprehensive verification reports
- Workspaces and teams with spend limits
- Credits never expire
Try the AI email verification features
20 free credits every day you log in, up to 600 a month. Free AI first email verification across every feature, no credit card.
Native MCP Server integration ยท Catch-all reported separately ยท Free tier, no credit card