SMTP error 471
Local filter or Exchange block — not a valid SMTP code.
Updated Jul 1, 2026
SMTP 471 is not a valid reply code. RFC 5321 never defines a second digit of 6 or 7, so 471 falls outside the standard entirely. In practice it is a local or vendor pseudo-code, often from an outbound anti-spam or antivirus filter, or a Microsoft Exchange database issue, meaning your own server blocked the message before it left. Read the full log and fix the named component.
Read the full log, then tune the named filter or repair the Exchange store.
What it means
Every SMTP reply is three digits. The first must be 2, 3, 4, or 5, and RFC 5321 defines second-digit categories 0, 1, 2, 3, 4, and 5 only, never 6 or 7. So a "471" cannot be a valid server reply, and the full numeric list of codes has nothing in the 470-479 range. When you see 471 it almost always comes from your own side: a local outbound filter, an Exchange database or transport artifact, or a mislabeled message from a library that is not quoting a real reply line.
Common causes
An on-server anti-spam engine, content filter, or antivirus milter rejected your message before it reached the remote server and reported its own internal pseudo-code. This is the most common real trigger.
A 471 can surface around database rollback or log-write problems (JET errors like -510 or -1022), which is a disk, permission, or store issue, not a recipient-side rejection.
An SMTP library or appliance that is not quoting a real reply line.
How to fix it
- Get the full log line, not just the number
The digits tell you almost nothing. Find the complete bounce or transport entry, which names the actual component (SpamAssassin, ClamAV milter, Exchange transport, your provider). That string is what you troubleshoot.
- If a local anti-spam or content filter rejected it
Inspect the message against that filter's rules, reduce obvious spam triggers, check flagged attachments, and add a tuned allow rule for the legitimate sender. Do not disable the filter wholesale on a production server.
- If it is Exchange database or log related
Check free disk space and store or log volume permissions, run a disk check on the affected volume, and review the Application event log for JET errors like -510 or -1022. This is an infrastructure repair, not a content fix.
- If a third-party provider returned it
Treat 471 as opaque and open the provider's own delivery logs for the real reason and status code.
- Keep authentication in place
If you were toggling security to make it send, confirm SPF, DKIM, and DMARC are aligned and use a real credential (App Password or OAuth2) on port 587 or 465. Do not leave protection off.
Common questions
Is 471 a real SMTP reply code?
No. RFC 5321 never defines a second digit of 6 or 7, so a code of 471 cannot be a valid server reply. It is a local or vendor pseudo-code, usually from an anti-spam or antivirus filter or an Exchange database issue.
Should I disable my firewall or antivirus to fix 471?
No. Disabling protection on a production server is not safe and will not address the Exchange-database case. Read the full log, then tune the named filter with an allow rule.
Why does Exchange show a 471 error?
It usually points at a database or transaction-log problem (JET errors like -510 or -1022) from low disk, bad permissions, or a store issue, not a recipient rejection.