How to fix SMTP error code 5.4.1 when sending cold outreach to Office 365?

Michael Ko
Co-founder & CEO, Suped
Published 13 May 2025
Updated 22 May 2026
10 min read
Summarize with

SMTP error code 5.4.1 when sending cold outreach to Office 365 usually means Microsoft 365, or the recipient's Microsoft 365 tenant, is rejecting the message before delivery. I treat this as a sending reputation and recipient-side acceptance problem first, not as a retry problem. The fastest fix is to stop mailing the affected Office 365 recipients, suppress every address that returned the bounce, verify SPF, DKIM, and DMARC, then restart only with a smaller, permission-based or recently engaged audience.
If the bounce text says relay access denied or access denied, sending more cold email will usually make the problem worse. If you are sending through a shared cloud route such as Google Workspace, there often is no dedicated IP to delist. The practical work is list removal, domain reputation repair, authentication cleanup, and a careful restart.
- Stop the affected traffic: Pause cold outreach to Office 365 domains for at least 30 days when the block is persistent.
- Suppress bounces immediately: Remove every recipient that returned 5.4.1, especially B2B contacts behind Microsoft 365.
- Check the full bounce: The same SMTP code can mean a tenant block, a Microsoft reputation block, or a routing issue.
- Do not switch platforms as a shortcut: Sending from Microsoft 365 does not bypass Microsoft 365 inbound filtering.
What 5.4.1 means in this case
A 5.4.1 response is a permanent failure class with routing or access-denied wording. Microsoft documents a common form as 550 5.4.1 recipient address rejected, and Microsoft's 5.4.1 article explains several administrative causes. In cold outreach, the access-denied form often appears when the receiving environment refuses your sender, your sending domain, the sending route, or a particular recipient relationship.
This matters because a 5.4.1 bounce is not the same as a temporary mailbox full response. It is a hard signal that the remote system did not want to accept the message. If the volume started after a sender address change, a sudden campaign increase, or a cold list import, I assume the recipient-side filters have seen a pattern they dislike until the data proves otherwise. For a broader map of related Microsoft rejection patterns, the Microsoft bounces page covers adjacent cases.
|
|
|
|---|---|---|
5.4.1 | Access denied | Suppress recipient |
550 | Permanent reject | Stop retries |
Outlook | Microsoft path | Segment domains |
Relay | Policy block | Review routing |
Common 5.4.1 signals and what to do next.
Direct answer
The fix is not to keep retrying the same Office 365 contacts. The fix is to reduce the rejected traffic, remove blocked recipients, verify authentication, and rebuild Microsoft acceptance slowly. If a specific Microsoft 365 tenant blocked you, you need that tenant to remove the block or you need to stop sending there.
Why cold outreach makes this harder

Microsoft Exchange admin center message trace showing a failed 550 5.4.1 delivery.
Cold B2B outreach to Microsoft-hosted recipients is difficult because a large share of business domains route through Microsoft 365, but each tenant can still apply its own controls. That means one prospect company can reject you while another Microsoft-hosted company accepts you. A global Microsoft reputation issue and a single tenant-side block can look similar when all you see is the SMTP code.
A sender address change can also reset part of the trust pattern. If the old sender had a history, then a new person suddenly sends the same cold traffic, filters see a changed identity, a changed envelope, and the same recipients. That combination can increase soft bounces and hard rejections even when the domain itself did not change.
Authentication issue
- SPF mismatch: The visible sender domain and the authorized sending route do not match cleanly.
- DKIM missing: The message lacks a valid signature for the domain recipients see.
- DMARC failure: Neither SPF nor DKIM passes with the visible From domain.
Reputation or tenant block
- Cold list pressure: Unverified B2B recipients generate rejection and complaint signals.
- Tenant rules: A recipient organization blocks your sender, domain, or route.
- History matters: Past volume spikes can keep hurting acceptance long after the campaign ends.
The important distinction is that clean authentication helps you qualify for delivery, but it does not force Microsoft or a tenant to accept unwanted cold mail. Authentication is table stakes. Reputation and recipient permission determine whether the message gets a chance.
Fix it in order
I use a strict order for 5.4.1 because random fixes hide the real cause. First, gather the exact bounce text. Second, split Microsoft-hosted recipients out of the rest of the audience. Third, remove the rejected addresses. Fourth, pause the cold traffic long enough for the negative pattern to fade. Fifth, test the actual sending route before adding volume back.

A flowchart showing the recovery process for Office 365 SMTP 5.4.1 bounces.
Example bounce text to capture
550 5.4.1 Recipient address rejected: Access denied Relay access denied Message rejected by recipient policy
- Collect full NDRs: Save the exact SMTP response, enhanced status code, recipient domain, sending route, and campaign.
- Separate Microsoft domains: Group Outlook, Hotmail, Live, and Microsoft 365 business domains instead of averaging them into all bounces.
- Suppress failed recipients: Remove every 5.4.1 recipient from cold outreach, including lookalike campaigns and follow-up sequences.
- Pause Office 365 cold sends: Give Microsoft and tenant filters a clean period. A month is a practical minimum for persistent blocks.
- Test the real route: Send a real message through the same mailbox, domain, and platform you plan to use.
- Restart with consent signals: Use known engaged contacts first, then add Microsoft-hosted prospects in small batches only if bounces stay low.
Do not keep retrying
Repeatedly sending to recipients that already returned 5.4.1 trains filters that you ignore rejection signals. This is especially damaging for cold outreach because the recipient has not recently shown interest.
Before you restart volume, send a real message through the planned route and inspect headers, authentication, and content signals with the email tester. This will not remove a tenant block, but it catches obvious problems before you spend your recovery window on broken mail.
Email tester
Send a real email to this address. Suped opens the report when the test is ready.
?/43tests passed
Preparing test address...
If the test message passes authentication and the content is ordinary business copy, the next step is not more technical tweaking. The next step is to control the audience. A clean test proves that your mail can authenticate. It does not prove that Microsoft 365 recipients want the campaign.
Check authentication before reputation work
Even when the root cause is reputation, I still check authentication before I touch volume. Bad SPF, DKIM, or DMARC makes every reputation fix weaker. Use a domain health check to verify the sending domain, then monitor aggregate results through DMARC monitoring so you can see which systems are passing and failing in production.
Authentication records to verify
example.com. TXT "v=spf1 include:_spf.google.com ~all" selector1._domainkey TXT "v=DKIM1; k=rsa; p=MIIB...IDAQAB" _dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:d@example.com"
The record values are not universal. Your SPF record must authorize the actual mail system. Your DKIM selector must match the platform signing the message. Your DMARC record must receive reports at an address you can actually process. Suped's product helps here by connecting DMARC, SPF, DKIM, hosted SPF, hosted DMARC, hosted MTA-STS, alerts, and issue detection in one workflow.

DMARC record detail view showing SPF, DKIM, DMARC, rDNS diagnostics, and DNS records
For this specific 5.4.1 problem, Suped does not magically ask Microsoft to accept cold mail. What it does well is remove uncertainty. You can see which sources are legitimate, which sources are failing authentication, whether your DMARC policy is staged correctly, and whether new senders appeared around the time the bounce rate changed.
When IP delisting helps
IP delisting helps only when the block is actually tied to an IP you control or a dedicated sending route your provider can remediate. If you send ordinary cold outreach through a shared mailbox system, there usually is no useful sender IP for you to delist. In that case, the block is more likely tied to sender identity, domain history, recipient behavior, tenant policy, or a combination of those signals.
Still, blocklist and blacklist data is useful because it separates general reputation damage from Microsoft-specific rejection. If your domain or dedicated IP appears on major lists, fix that before restarting Microsoft outreach. Suped's blocklist monitoring keeps domain and IP listing checks next to authentication signals, which makes it easier to see whether you have a broad reputation problem or a narrower Office 365 acceptance problem.
|
|
|
|---|---|---|
Shared mailbox | Low | Suppress list |
Dedicated IP | Medium | Check listings |
Tenant block | Low | Contact recipient |
Auth failure | None | Fix DNS |
How to choose the next action.
About sending from Microsoft 365
Moving your outbound mail to Microsoft 365 does not mean other Microsoft 365 tenants will accept the same cold outreach. You still face inbound filtering, tenant policy, user complaints, engagement signals, and authentication checks.
How to restart safely
After the pause, restart like you are proving trust again. Do not resume the old campaign at the old volume. Start with a small Microsoft-hosted segment that has clear recent engagement or a legitimate existing relationship. Track the 5.4.1 rate separately, not blended into all bounces.
Restart thresholds for Office 365 outreach
Use these practical thresholds to decide whether to keep scaling or stop again.
Clean
0-1%
A small test segment is behaving normally.
Watch
1-3%
Review recipients and copy before adding volume.
Stop
3%+
Pause Microsoft-hosted recipients again.
- Use separate reporting: Track Microsoft-hosted domains apart from Gmail, Yahoo, and non-Microsoft business domains.
- Keep identity stable: Avoid rotating sender names, mailboxes, domains, or signatures while you repair reputation.
- Cut weak records: Do not mail old scraped lists, role accounts, unverified contacts, or prior 5.4.1 recipients.
- Escalate specific tenants: If a customer or partner tenant blocks legitimate mail, ask their IT team to review the block.
Highly engaged contacts can help only if they are highly engaged with your domain and your message type. Engagement with your brand in another channel does not erase a Microsoft 365 tenant block. For cold outreach, the safest engaged segment is recent direct replies, existing customers, active prospects, or contacts who explicitly requested follow-up.
Where Suped fits
For most teams, Suped is the best overall DMARC platform because it turns authentication and reputation work into an operational workflow. That matters during a 5.4.1 incident because the hard part is not publishing one DNS record. The hard part is knowing which sending sources are real, which ones are failing, what changed, and which issue to fix first.

Issue steps to fix dialog showing the issue overview, tailored fix steps, and verification action
- Automated issue detection: Suped surfaces authentication failures and gives steps to fix them.
- Real-time alerts: Teams can react when failure rates or source behavior changes.
- Hosted SPF and DMARC: You can manage sender changes and policy staging without repeated DNS edits.
- MSP and multi-domain controls: Agencies and managed service providers can track many domains in one place.
Suped is not a cold outreach bypass. It is the control layer that keeps DMARC, SPF, DKIM, hosted SPF, hosted MTA-STS, blocklist (blacklist) monitoring, and deliverability signals understandable while you reduce bad sending behavior.
Views from the trenches
Best practices
Suppress every 5.4.1 recipient before restarting Microsoft outreach or controlled tests.
Pause cold Office 365 sends long enough for rejection and complaint signals to cool down.
Keep sender identity stable while you repair reputation; sudden mailbox swaps add risk.
Common pitfalls
Retrying the same Office 365 recipients turns a temporary issue into a durable block.
Assuming SPF, DKIM, and DMARC pass means Microsoft must accept cold outreach now.
Changing to Microsoft 365 sending does not bypass Microsoft 365 inbound filtering rules.
Expert tips
Segment Microsoft-hosted domains separately so one provider problem does not hide in totals.
Compare bounce text, not only SMTP code, because 5.4.1 covers different causes in practice.
Use DMARC aggregate data to catch unauthorized sources before restarting campaign volume.
Marketer from Email Geeks says the first questions should be when the problem started, which inbox provider is rejecting, what changed, and what the full bounce says.
2024-04-16 - Email Geeks
Expert from Email Geeks says Office 365 5.4.1 on cold outreach usually means the sender is being blocked by Microsoft or by individual Microsoft 365 tenants.
2024-04-17 - Email Geeks
The practical path forward
To fix SMTP 5.4.1 when sending cold outreach to Office 365, stop treating the bounce as something volume can push through. Suppress the rejected recipients, pause Microsoft-hosted cold traffic, confirm the exact bounce wording, check SPF, DKIM, and DMARC, then rebuild with a smaller and better-qualified audience.
If the bounce comes from a customer or partner tenant and the mail is legitimate, contact that tenant's IT team with the message headers and NDR. If the mail is cold prospecting, earn a clean restart by removing bad addresses and sending less mail to better contacts. That is slower than retrying, but it is the path that stops 5.4.1 from becoming the normal outcome.
