SMTP

SMTP Error 471

"SMTP Error 471" isn't a valid RFC 5321 reply code — it's a local anti-spam/filter or Exchange artifact. Here's what it actually means and how to fix it.

Updated Jul 1, 2026

The short answer

"SMTP Error 471" is not a standard SMTP reply code. RFC 5321 defines six second-digit categories (0, 1, 2, 3, 4, 5) and never defines a second digit of 6 or 7, so 471 falls entirely outside the RFC's structure. In practice it's a local/vendor pseudo-code (often Exchange or an outbound anti-spam/antivirus filter) meaning your own server blocked the message before it left. Fix it by reading the full server log, then adjusting the local content filter rather than the recipient.

Is "SMTP Error 471" a real SMTP code?

No. It is not a valid SMTP reply code, and you should treat any "471" label with suspicion.

Per RFC 5321 §4.2.1, every SMTP reply is a three-digit code. The first digit must be 2, 3, 4, or 5. The second digit defines six categories: 0 (syntax), 1 (information), 2 (connections), 3 and 4 (unspecified/reserved), and 5 (mail system status) — and the RFC never defines a second digit of 6 or 7 at all. So 471 doesn't just fall outside the four "meaningful" categories — it falls entirely outside the RFC's structure. Consistent with that, RFC 5321 §4.2.3, the full numeric list of reply codes (211 through 555), contains no code anywhere in the 470-479 range.

When you see "471," it almost always comes from one of these instead:

  • A local outbound filter — an on-server anti-spam engine, content filter, or antivirus milter that rejected your message before it was handed to the remote MTA, and reported its own internal pseudo-code.
  • A Microsoft Exchange database/transport artifact. Per Stellar's Exchange error guidance, a "471" surfaces around database rollback/log-write problems (e.g. JET errors -510, -1022) — a disk, permission, or store issue, not a recipient-side SMTP rejection.
  • A mislabeled or truncated message from an SMTP library/appliance that isn't quoting a true RFC reply line.

The previous version of this page said 471 is caused by your "anti-virus guard, anti-spam filter, or firewall" and told you to disable them. The anti-spam direction is partly right (a local outbound filter is the most common real trigger), but "disable your firewall/antivirus and resend" is not safe production advice and won't address the Exchange-database case at all.

How do I fix "SMTP Error 471"?

  1. Get the full log line, not just the number. The digits "471" tell you almost nothing. Find the complete bounce or transport log entry — it will name the actual component (e.g. SpamAssassin, ClamAV milter, Exchange transport, your provider's API). That string is what you actually troubleshoot.
  2. If a local outbound anti-spam/content filter rejected it: inspect the message against that filter's rules rather than guessing. Reduce obvious spam triggers, check for flagged attachments, and add a tuned allow/exception rule for the legitimate sender — do not disable the filter wholesale on a production mail server.
  3. If it's Exchange-side (database/log): check free disk space and store/log volume permissions, run chkdsk /f /r on the affected volume, and review the Application event log for JET errors like -510 or -1022. This is an infrastructure repair, not an email-content fix.
  4. If a third-party provider returned it: treat 471 as opaque and open the provider's own delivery logs/dashboard (SendGrid Activity Feed, Amazon SES sending activity monitoring, Mailgun Events API Reference) for the real reason and status code.
  5. Authenticate properly while you're in there. If you were toggling security to "make it send," confirm SPF (RFC 7208), DKIM (RFC 6376), and DMARC (RFC 7489) are aligned, and use a real credential — Google removed Less Secure Apps for personal Gmail accounts in 2022; Google Workspace (business) accounts kept legacy password-based SMTP/IMAP access longer, losing it in 2025 — either way, use an App Password or OAuth2 now on port 587 (STARTTLS) or 465 (implicit TLS); both are valid per RFC 8314.

Bottom line

Don't debug "471" as if it were a recipient SMTP rejection. It's a local/vendor signal that your own mail system — a filter or the Exchange store — stopped the message. Read the full log, fix the named component, and keep your security controls on.

FAQ

Common questions

No. RFC 5321 defines six second-digit categories (0, 1, 2, 3, 4, 5) and never defines a second digit of 6 or 7, so a code of 471 (second digit 7) cannot be a valid SMTP server reply. It is a local or vendor-specific pseudo-code, most often from an on-server anti-spam/antivirus filter or a Microsoft Exchange database/transport issue.

One API, every provider

Stop debugging raw provider errors

Courier connects to your email, SMS, and push providers, handles retries and failover, and surfaces delivery errors in plain language.

Reply-code definitions per RFC 5321 §4.2.1, §4.2.3. Last reviewed Jul 1, 2026. Courier is not affiliated with third-party providers; error behavior may vary by implementation.