Critical ErrorSMTP Error · Permanent (5.x.x)
550 5.7.23

Message rejected for an SPF violation (Exchange Online)

A 550 5.7.23 says "The message was rejected because of Sender Policy Framework violation." The receiving system checked SPF for your domain and the sending IP was not allowed.

Updated June 13, 2026

SMTP Exchange / Mail Log
> MAIL FROM:<you@yourdomain.com>> RCPT TO:<recipient@example.com>✕ 550 5.7.23 Message rejected for an SPF violation (Exchange Online)
All guides

Is your domain affected?

Run a free check — we'll show you exactly what's misconfigured.

550 5.7.23 is a permanent SMTP reply meaning message rejected for an spf violation (exchange online). Microsoft explains that the destination email system uses SPF to validate inbound mail, and there is a problem with your SPF configuration.

What 550 5.7.23 means

Microsoft explains that the destination email system uses SPF to validate inbound mail, and there is a problem with your SPF configuration.

⚠️
This is a 5.x.x permanent failure — the message will keep bouncing until you fix the cause. Retrying the same message unchanged won't help.

Common causes

📨
#1

Microsoft 365 is not in your SPF record

Most common

The record is missing include:spf.protection.outlook.com, or it was removed during an edit.

🔁
#2

The record ends in -all and a real sender is missing

Common

A hard fail makes the receiver reject mail from any service you forgot to list.

⚙️
#3

SPF is invalid

Common

Two SPF records, a syntax error, or more than 10 lookups make SPF fail.

How to fix 550 5.7.23

  1. 1

    List every service that sends for you

    Include Microsoft 365, your ESPs and your servers in one SPF record.

  2. 2

    Stay under 10 DNS lookups

    Remove includes you no longer use, or flatten SPF if you need many services.

  3. 3

    Check SPF

    Run the free SPF checker to see the record, the lookup count, and any error.

Confirm your domain is set up correctly

Most delivery failures — permanent or temporary — trace back to authentication or reputation. Run a free EmailHealth check to confirm SPF, DKIM, DMARC, blacklist status, and TLS are all healthy for your sending domain. If you send in volume, free daily monitoring will alert you before a small issue becomes a flood of bounces.

Stop this error from coming back

Most delivery problems start when a DNS record changes, a key is removed or a domain lands on a blocklist. EmailHealth checks your sending domains every day and sends one alert, by email, Slack or webhook, with the exact fix.

1 domain free. Sending from many domains (cold email, agencies, MSPs)? Early access covers 10.

Frequently asked questions

Check your domain for free

SPF, DKIM, DMARC, MX, blocklists and TLS in about 2 seconds. No account needed.

Run the check