1. Home
  2. SMTP codes
  3. 550 5.7.23
Permanent failure — do not retry
BlockAbout your sending, not the address

SMTP 550 5.7.23

SPF violation (Microsoft 365)

SMTP 550 5.7.23 is Microsoft 365 rejecting a message because of an SPF failure. The text reads "The message was rejected because of Sender Policy Framework violation." The recipient's tenant enforces SPF, and the IP that sent your mail is not authorised by your domain's SPF record.

Should you remove the address?

Keep the address; fix the sending side

Keep it. SPF is about your domain.

Block. Retrying changes nothing until the cause on your side is fixed.

How it appears

550 5.7.23 The message was rejected because of Sender Policy Framework violation

What causes it

  • A sending service is missing from your SPF record.
  • The SPF record ends in -all and mail went out from an IP it does not list.
  • The message was forwarded by a server that is not in your SPF record.
  • The SPF record has a syntax error or too many DNS lookups.

How to fix it

In order — try the first one first.

  1. Add every service that sends as your domain to the SPF record.
  2. Check the record for syntax errors and keep it under 10 lookups.
  3. Set up DKIM so DMARC can pass even when forwarding breaks SPF.

Who sends it

Microsoft 365 and Exchange Online tenants.

Common questions

What does SMTP 550 5.7.23 mean?
SMTP 550 5.7.23 is Microsoft 365 rejecting a message because of an SPF failure. The text reads "The message was rejected because of Sender Policy Framework violation." The recipient's tenant enforces SPF, and the IP that sent your mail is not authorised by your domain's SPF record.
Should I retry a 550 5.7.23 error?
No. 550 is a permanent failure, so the message will never be delivered no matter how many times you try. Remove the address — repeated sends to permanent failures are one of the main signals mailbox providers use to throttle a sender.
How do I fix SMTP 550 5.7.23?
Add every service that sends as your domain to the SPF record.
Is 550 5.7.23 a hard bounce or a soft bounce?
550 5.7.23 is a block rather than a classic hard or soft bounce. The rejection is about your sending (authentication, reputation, content or the recipient's policy), not about whether the address exists. Retrying changes nothing until the cause on your side is fixed.
Should I remove the address after a 550 5.7.23 bounce?
Keep it. SPF is about your domain.
Will verifying my list prevent 550 5.7.23?
Not directly. This code is about your authentication, IP or domain reputation, so verification will not lift it. A clean list still matters, because mailbox providers weigh how often a sender hits addresses that don't exist.

Clean the list before the next send.

A bounce report only tells you about the addresses you already mailed. The rest of the list has the same kinds of dead mailboxes in it, and each one becomes a hard bounce recorded against your domain the moment you send.

  • A real SMTP mailbox check on every row, before anything is sent
  • Dead and mistyped addresses split out, so they never reach your sending tool
  • Catch-all, disposable and role addresses flagged alongside

Plans from $9 a month, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.

More Microsoft replies: every Outlook and Microsoft 365 SMTP error, and the 550 5.7.515 bulk sender rules.

Other 550 replies

Sources

Provider wording is quoted only where the provider publishes it.

Last reviewed 2026-10-22

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then monthly plans from $9, or one flat price with fair use, never cut off.

100 free checks, no card Cancel anytime Secure payment by Stripe