Start warming up today and get 20% off your first monthClaim offer

Some spam issues?

Mailwarm keeps your emails away from spam folders

Talk to an Expert

550 5.7.350 Error: Causes and Fixes for Microsoft 365

Fix the 550 5.7.350 bounce in Microsoft 365. Learn what it means, why forwarding triggers it, and the checks to run first.

TB
Thami Benjelloun
Email Marketing Expert
•
10 min read
550 5.7.350 Error: Causes and Fixes for Microsoft 365

550 5.7.350 means the receiving server refused the message as suspected spam, and Exchange Online returned that refusal to the sender. In Microsoft 365, it most often appears because a forwarding rule or outbound connector sent the mail on to another provider.

A campaign or a routine reply can look fine in the sending tenant. Then the non-delivery report arrives. The address exists, DNS checks pass, and the same message delivered elsewhere. That mismatch is the clue. The failure may have happened one hop later, after Microsoft handed the message to a remote server.

What the 550 5.7.350 Bounce Means

550 5.7.350 is a permanent rejection. The receiving server refused the message as suspected spam, and Microsoft 365 returned that refusal in a non-delivery report, or NDR. Resending the same message unchanged won't fix it.

A typical report looks like this:

Delivery has failed to these recipients or groups:
user@recipientdomain.com
Remote server returned an error.
550 5.7.350 Remote server returned message detected as spam

The remote server name and the text after the code matter more than the number alone. That text names the system that made the spam decision.

What Each Part Signals

The structure follows enhanced SMTP status reporting standardized through IETF RFC 3463 delivery status reporting. The first digit, 5, marks a permanent failure. Repeating the same attempt without changing the conditions isn't expected to succeed.

PartWhat it signalsWhat it means for you
550Permanent failure class, refused rather than deferredRetrying the same message won't succeed
5.7Security or policy refusalCheck spam filtering, reputation, or policy, not routing
350Provider-specific detail, not a fixed universal meaningRead the full text and remote server name

The 350 extension doesn't name one cause by itself. Microsoft and other providers use provider-specific detail values, so the same code can accompany different rejection wording.

Evidence to Save First

Don't change DNS, content, and volume at the same time. Save the evidence first.

  • Full NDR: Keep the complete report, including any inner SMTP response.
  • Remote server: Note which host returned the refusal.
  • Recipient domain and timestamp: Record both for message tracing.
  • Scope: Check whether one recipient or several domains were affected.

Practical rule: Diagnose from the remote server and explanatory text, not from 350 alone.

How 5.7.350 Differs From 5.7.509 and 5.7.515

These three codes sit in the same 5.7 policy family. They point to different fixes.

CodeWhat it signalsUsual causeFirst check
550 5.7.350Remote server flagged suspected spamForwarding, connectors, content, reputation, recipient policyForward path and original headers
550 5.7.509Sending domain failed DMARC under a reject policyAuthentication doesn't align with the From domainSPF and DKIM alignment
550 5.7.515Domain doesn't meet Microsoft minimum authentication requirementsSPF, DKIM, or DMARC missing or incompletePublish and validate all three records

550 5.7.350 is the odd one out. The other two are access denials tied to authentication policy on the sender's domain. A 5.7.350 comes from the receiving side's spam decision, relayed back by Exchange Online, so the sender's SPF, DKIM, and DMARC can all pass while the rejection still fires. The fix lives in the mail path, the content, or the reputation, not in a DNS record.

For 5.7.509, alignment is the fix, so senders should test authentication fixes before resending. For 5.7.515, publish the missing record. For 5.7.350, check where the message went before blaming the domain.

Treating every 5.7 code as a DNS problem wastes days. Match the fix to the code and the NDR text.

Why Forwarding and Relays Trigger It

Most guides start with the sender's DNS records. That's often the wrong place. The original records can pass, and the failure happens at the next hop.

A graphic illustration showing an email being forwarded to a mailbox and reaching a closed security gate.

The Forwarding Chain

A message leaves a tenant as a legitimate send. An Outlook rule or connector then forwards it to a personal Gmail account or a ticketing tool. At that next hop, SPF checks the forwarder's IP, not the original sender's, so SPF fails.

If the original message had no aligned DKIM signature, nothing survives the forward. DMARC then fails at the next server, and that server rejects the mail as spam. Exchange Online relays that rejection back as 550 5.7.350.

A documented Microsoft example shows Exchange relaying a Gmail rejection that called the message suspicious because of the very low reputation of the sending domain. The code alone didn't explain that. The inner text did.

Senders should analyze the headers to see what the original message carried, and use an SPF checker to confirm the actual sending service is authorized. Related relay failures are covered in SMTP relay troubleshooting with Mailwarm.

TriggerWhy the receiving server objectsTypical sign
Auto-forwarding externallySPF fails at the next hop, nothing survives without aligned DKIMRemote server is a consumer mailbox or ticketing host
Outbound connectorMail leaves through a smart host the recipient doesn't trustConnector covers the recipient domain
Low domain reputationRecipient sees the domain as high riskNDR text mentions reputation or suspicious sending
Misaligned authenticationFilters can't confirm authorizationAuthentication-Results shows fail or none
Spammy content or linksBody or attachments match spam patternsDelivers to some providers, bounces at one
Recipient gateway policyReceiving organization blocks by its own ruleOnly one organization rejects

Message size should also be ruled out when the forward path and headers look clean. Checks come before fixes.

How to Find the Rule or Connector Behind It

A clean SPF result inside your tenant means little once the NDR names Gmail, Yahoo, or a ticketing host as the remote server. Start with the full NDR. Note the remote server, recipient domain, timestamp, and message ID. Microsoft's Exchange Online guidance stresses obtaining the exact NDR and status code from the non-delivery report before escalating.

An infographic by Mailwarm explaining the steps to troubleshoot a 550 5.7.350 email bounce error code.

Step 1 Check Mailbox Forwarding

Connect with Connect-ExchangeOnline, then run Get-Mailbox -Identity user@yourdomain.com | Format-List ForwardingAddress,ForwardingSmtpAddress,DeliverToMailboxAndForward. Any value here copies mail outside the tenant on every message.

That setting is tenant-visible and easy to miss during staff changes. A mailbox set up years ago can still forward every inbound message to an address nobody monitors.

Step 2 Check Inbox Rules

Run Get-InboxRule -Mailbox user@yourdomain.com | Format-Table Name,Enabled,ForwardTo,ForwardAsAttachmentTo,RedirectTo. Users often create these rules in Outlook without IT knowing.

Look for enabled rules first. A disabled rule explains nothing. An enabled rule forwarding to a personal address explains a Gmail remote server in the NDR.

Step 3 Check Tenant Paths

Run Get-TransportRule | Format-Table Name,State,Mode and Get-OutboundConnector | Format-List Name,Enabled,SmartHosts,RecipientDomains. A connector through a third party changes which server the recipient sees.

Check whether the connector covers the affected recipient domain. If it doesn't, the connector probably isn't the path for this bounce.

Step 4 Read the Original Headers

Find the Authentication-Results line. A healthy result reads spf=pass, dkim=pass header.d=yourdomain.com, and dmarc=pass header.from=yourdomain.com. Microsoft 365 records authentication outcomes in that header, as noted in Microsoft guidance on authentication checks.

Pay attention to the domain after header.d=. A valid signature from a different domain doesn't give aligned DKIM for the From domain.

Step 5 Decide the Scope

  • One recipient domain rejects: Prioritize that organization's gateway or policy.
  • Several domains reject: Check content, reputation, and the forwarding path.
  • One mailbox triggers it: Check that mailbox's rules before tenant-wide settings.

Resending the same message won't clear a permanent policy decision. The receiving system isn't asking for a retry.

If the forward path looks clean and bounces continue, Mailwarm deliverability experts can review headers. On-demand deliverability calls are available on the Scale plan.

How to Fix Forwarding Without Breaking Authentication

Apply fixes in order. Remove the trigger first, then protect any mail that still has to be relayed.

An infographic from Mailwarm about fixing email forwarding issues while maintaining SPF and DKIM authentication standards.

Turn Off External Auto-Forwarding

A forward that only copies mail to a personal or ticketing address is the usual trigger. Turn it off. Replace it with a redirect or alias where the recipient still needs mail from a tenant address.

Redirects and aliases keep delivery inside known paths. The message never resends from a server the next hop didn't expect, which is where most 5.7.350 rejections start.

Sign With Aligned DKIM

SPF will still fail at a forward. Chasing SPF for forwarded mail is the wrong goal. Aligned DKIM survives because the signature travels with the message.

Check signing with Get-DkimSigningConfig, then enable it with Set-DkimSigningConfig -Identity yourdomain.com -Enabled $true. Read a test message header after enabling and confirm the signature passes. Guidance to improve authentication for forwarded outreach emails covers the alignment detail.

Keep DMARC in view while you test. A policy of p=none only monitors and enforces nothing, so it can't stop a spam-flagged forward. Mailwarm recommends fixing SPF, DKIM and DMARC first, starting warmup before the first campaign, ramping slowly, and keeping a maintenance level running after.

Ask the Receiving Admin to Allow-List

A partner gateway that rejects the sender outright won't be fixed by any DNS record on your side. Ask the receiving admin to allow-list your domain or sending IP, and send them the NDR and timestamp so they can trace the block in their own logs.

FixUse it whenCheck after the change
Turn off external auto-forwardingForward only copies mail externallyNo ForwardingSmtpAddress, no external inbox rule
Use redirects or aliasesRecipient must still get tenant mailAlias delivers, From domain unchanged
Sign with DKIM on the domainAny forwarded or relayed messageSignature passes in the header
Ask receiving admin to allow-listPartner gateway rejects the senderAdmin confirms sender or domain is allowed
Remove spam signalsContent matches filter patternsPlain test to a consenting mailbox delivers

Change one thing at a time. Re-read the headers after each change, or the result can't be interpreted.

Questions About the 5.7.350 Bounce Answered

Will the Bounce Clear on Its Own?

Only if the cause disappears. Turning off an external forward or correcting a connector can clear it. Waiting alone doesn't change the receiving side's decision.

A temporary filter incident at the recipient can also end without sender action. That can't be assumed from the code. The NDR text and repeat tests show whether anything changed.

Does It Mean the Domain Is Blacklisted?

Not by itself. Forwarding and recipient filters cause most cases that reach a deliverability team. A blacklist checker is still a quick way to rule out a listing.

If no listing appears, stop chasing delisting forms. Return to the forward path, headers, and the named remote server.

Should the Address Be Removed From the List?

Treat it as a hard bounce for that recipient until the cause is known. First confirm whether one organization or many are rejecting. A single gateway block differs from a broad reputation problem.

Removing one address doesn't fix a forwarding rule. It also doesn't fix a connector that will trigger the same rejection for the next recipient at that provider.

Does Mailwarm Need Access to the Inbox to Help?

No. Mailwarm does not require IMAP access. Header, DNS, and deliverability checks can run without mailbox-level access.

That matters for shared and executive mailboxes. Diagnosis needs the NDR and the message headers, which you can export and share without handing over mailbox credentials.

Confirm the Forward Path Before You Send Again

A clean SPF result can still end in 550 5.7.350 when a forwarding rule hands the message to the next hop. Check that path first. The original domain may pass authentication while the relayed copy arrives with a different return path, a rewritten recipient, or headers the receiving gateway does not trust.

Before you send again, confirm three things. No external forward or connector relays the mail. DKIM signs with the sending domain. The headers show DKIM and DMARC aligned to the From domain.

Then send one plain test message, no links or attachments, to a consenting mailbox at the affected provider. Compare the new NDR with the original bounce. If one provider accepts and another rejects, go back to scope: the gateway named in the NDR is the suspect.

For ongoing sending, start with 10 to 20 emails per day per mailbox and increase by roughly 10 to 20 percent every few days. Mailwarm runs that ramp automatically, does not require IMAP access, and includes deliverability experts in every plan.

Keep the maintenance warmup running after the incident clears. The bounce is resolved only when the forward path and authentication both pass for 550 5.7.350. Visit Mailwarm to check the setup before the next campaign sends.

Ready to warm up your emails?

Start building your sender reputation today with Mailwarm's automated email warm-up system.

Get Started