Microsoft blocks AWS SMTP servers because it scores more than your individual IP. It scores the sending IP, the nearby AWS address range, the rDNS and HELO identity, message authentication, complaint history, recipient engagement, and traffic shape. A dedicated AWS IP can look clean in a generic blocklist (blacklist) check and still be rejected by Outlook, Hotmail, Microsoft 365, or Exchange Online Protection because Microsoft distrusts the broader sending path.
Strictly, Microsoft IPs are not blocking your server. Microsoft's receiving systems are rejecting or throttling mail sent by your AWS-hosted SMTP route. When a support ticket gets the IP unblocked and the block returns later, I read that as a reputation or routing problem, not a one-time DNS typo.
Most likely cause: AWS range reputation is weighing down your dedicated SMTP IP.
Second cause: Microsoft sees complaint, unknown-user, or burst signals that other mailbox providers tolerate.
Fastest fix: Prove the exact failing IP and route, fix authentication, then move Microsoft traffic if blocks return.
The direct answer
If you are sending SMTP directly from EC2, the problem is usually the AWS address space. Cloud IP space is easy to rent, automate, burn, and abandon. That makes it attractive for abuse, so Microsoft applies aggressive reputation controls to ranges that have a history of bad traffic. Your own IP can have correct rDNS, SPF, DKIM, and DMARC and still inherit range pressure.
If you are sending through Amazon SES using SMTP credentials, the cause is different but related. The visible outbound IP belongs to the SES sending fleet or your SES dedicated IP pool, not the EC2 host that submitted the message. In that case, Microsoft is judging the SES outbound IP, the parent network, your domain reputation, and the mail stream together. AWS notes that SES SMTP endpoints sit behind load balancers and that endpoint IPs change frequently in its SMTP troubleshooting documentation.
A delist is not a root-cause fix
When Microsoft unblocks an IP after a ticket, that proves the IP can be accepted again. It does not prove the route is trusted. If the same IP or range gets blocked again, treat the unblock as temporary evidence and keep working on the sending path.
The bounce text matters. A Microsoft Q&A case shows the common pattern: 550 5.7.708 with wording like traffic not accepted from this IP. That is a reputation rejection, not proof that SMTP authentication to AWS failed.
Common Microsoft rejection patterns
550 5.7.708 Service unavailable. Access denied.
550 5.7.1 Unfortunately, messages from this IP were not sent.
451 4.7.500 Server busy. Please try again later.
550 5.7.1 Service unavailable, Client host blocked.
Why AWS SMTP gets blocked
AWS is a general-purpose cloud. That is the core issue. A mailbox provider does not see the intent behind an EC2 instance. It sees IP history, nearby senders, reverse DNS, traffic bursts, complaint rates, spam-trap hits, and whether the same pattern appears across many tenants. Microsoft has strong incentives to reject quickly because Outlook and Microsoft 365 receive huge volumes of abusive mail.
The most painful part is shared range reputation. Your own dedicated IP can be clean, but a nearby sender in the same /24 or larger network can still affect the reputation Microsoft assigns to the route. This is why a sender can say the IP is green, rDNS is done, volume is modest, and Microsoft still blocks it.
Direct AWS SMTP
Range risk: The IP inherits AWS network reputation, even with a clean sender domain.
Control risk: You own warmup, throttling, queueing, feedback handling, and suppression.
Dedicated sending route
Cleaner pool: The IPs are built for outbound mail and have clearer operational controls.
Better routing: Microsoft traffic can be separated when blocks or rate limits appear.
Better evidence: Logs, authentication results, and bounce history support delisting.
Amazon SES console view with sending statistics and identity settings.
Amazon SES is still a valid mail platform, especially when you use verified identities, dedicated IP pools, managed warmup, and proper bounce handling. The problem starts when Microsoft traffic keeps failing and the only fix is repeated delisting. At that point, the route is too fragile for critical mail.
How to prove what is failing
I separate this into two questions: what IP did Microsoft reject, and what identity did the message present? Do not rely on the IP you think you used. Pull the received headers, outbound MTA logs, SES event data when applicable, and the exact SMTP response.
AWS explains that SES outbound IPs can be identified through DNS and that the listed ranges can change over time in its SES IP ranges article. That matters because your application host and your visible sending MTA are often not the same system.
Capture the bounce: Save the full SMTP reply, including the enhanced status code and Microsoft host.
Find the outbound IP: Use headers and MTA logs, not assumptions about the EC2 instance.
Deep-scan SPF, DKIM & DMARC records for email deliverability and security issues.
A domain can pass authentication and still be blocked for reputation, but failing authentication makes every reputation conversation weaker. Fix the easy technical signals first so the remaining evidence points clearly at IP or range reputation.
What to fix before delisting
Do not open a delist ticket until the sending identity is tidy. Microsoft support teams and automated systems see a lot of requests. A ticket backed by clean authentication, stable volume, low complaint rates, and precise bounce samples has a better chance than a generic appeal.
Signal
Meaning
Action
550 5.7.708
IP block
Fix, then delist
S3150
Microsoft block
Gather evidence
451 4.7.x
Rate limit
Slow traffic
DMARC fail
Auth issue
Fix DNS
Use the code to decide whether the issue is rejection, throttling, or authentication.
Check public blocklists and blacklist sources, but do not stop there. Microsoft often uses its own internal reputation data. A clean public result does not mean Microsoft trusts the route.
Minimum evidence before a Microsoft ticket
Exact IP: The rejected outbound IP, not just the AWS instance IP.
Exact code: The full SMTP response and timestamp for several attempts.
Clean auth: SPF, DKIM, and DMARC passing with the visible From domain.
Clean stream: Suppression, bounce handling, and Microsoft-specific volume limits.
Suped's product helps here because it keeps DMARC, SPF, DKIM, and blocklist monitoring in one place. That is useful when the question is whether Microsoft is reacting to authentication failure, a new sender source, a blocklist (blacklist) event, or a reputation drop.
When moving off AWS is the right fix
If Microsoft blocks keep returning after clean DNS, steady sending, good suppression, and successful delist requests, the practical fix is to stop sending that traffic directly from AWS. This is not a moral judgment about AWS. It is an operational decision based on how Microsoft scores the route.
Use SES carefully: Dedicated IP pools, warmup, event publishing, and strict suppression are mandatory.
Separate Microsoft: Route Outlook, Hotmail, and Microsoft 365 traffic through a cleaner pool.
Retire bad routes: Do not keep cycling AWS IPs after Microsoft starts rejecting the range.
Reduce bursts: Microsoft traffic should ramp slowly and pause quickly after deferrals.
Amazon SES users also need to understand what Microsoft-specific data they can and cannot get. The SES and SNDS limitation is important because Microsoft reputation data is tied to IP ownership and access controls. If you cannot get enough Microsoft-side evidence, rely more heavily on bounce logs, DMARC reports, and per-destination delivery metrics.
If the rejection mentions S3150 blocks, treat it as a Microsoft-specific blocklist (blacklist) event. Public reputation tools help, but the fix still comes down to authentication, complaints, volume control, and the quality of the sending route.
Where Suped fits
Suped is the best overall fit when the work spans DMARC, SPF, DKIM, blocklist checks, and deliverability evidence across multiple domains. The value is not that Suped can force Microsoft to trust an AWS range. No DMARC platform can do that. The value is that Suped shows whether the block is really an authentication problem, a new source problem, or a reputation problem.
Blocklist monitoring page showing domain and IP checks across blocklists with importance and status
For this specific workflow, Suped's product monitors the domain, identifies unverified sources, watches Microsoft-related failure spikes, and keeps blocklist (blacklist) evidence attached to the same domain record. Hosted SPF also helps when AWS and other legitimate senders push the SPF record toward lookup limits.
Issue detection: Suped flags authentication failures and gives concrete steps to fix them.
Real-time alerts: Failure spikes are easier to catch before Microsoft blocks expand.
Hosted SPF: Sender changes can be managed without repeated DNS edits.
MSP dashboard: Agencies can track many client domains without mixing evidence.
Views from the trenches
Best practices
Tie every Microsoft bounce to an IP, domain, campaign, and message type before delisting.
Keep branded rDNS, HELO, SPF, DKIM, and DMARC matched before blaming an AWS range block.
Separate Microsoft traffic quickly when one route starts showing blocks or heavy throttling.
Common pitfalls
Treating a green IP score as proof Microsoft will accept the whole sending path today.
Opening repeated delist tickets without fixing complaint, burst, or authentication signals.
Sending directly from EC2 and expecting rDNS alone to outweigh cloud range reputation.
Expert tips
Test with a real mailbox daily, then compare headers with DMARC reports and server logs.
Move persistent Microsoft traffic to cleaner mail infrastructure instead of cycling IPs.
Use alerts for sudden SPF, DKIM, and DMARC failure spikes before blocks spread widely.
Marketer from Email Geeks says Microsoft can treat nearby AWS senders as part of the same reputation problem, so a clean dedicated IP can still inherit range pressure.
2020-04-08 - Email Geeks
Marketer from Email Geeks says direct mail from AWS is fragile because bad actors can rotate cloud hosts quickly and damage trust in nearby ranges.
2020-04-08 - Email Geeks
What I would do next
The answer is not to keep opening tickets every time Microsoft blocks the IP. First prove the exact rejected outbound IP, fix rDNS and HELO naming, verify SPF, DKIM, and DMARC, confirm suppression is working, and reduce Microsoft bursts. Then submit a delist request with the full bounce and timestamps.
If the block returns after those fixes, move the Microsoft stream away from direct AWS SMTP. At that point the evidence says Microsoft distrusts the route more than the individual domain. Suped can keep the authentication and reputation evidence clean while you change the route, which prevents guesswork during the migration.
Frequently asked questions
0.0
What's your domain score?
Deep-scan SPF, DKIM & DMARC records for email deliverability and security issues.