SMTP error code

550 5.2.1: the mailbox is disabled

550 5.2.1 says the account exists but isn't accepting messages. At Gmail that usually means an inactive account, and the address should come off your list. One Gmail variant is different: a rate limit for a recipient who gets too much mail.

Updated October 9, 2026 · 3 min read

Reply code
550 (RFC 5321)
Enhanced code
5.2.1 Mailbox disabled, not accepting messages (RFC 3463)
Bounce type
Hard bounce (inactive account)
Retry?
No, except for Gmail's rate-limit text

Verification catches some cases

When the receiving server refuses a disabled mailbox during the SMTP conversation, a verification gets the same answer and flags the address. The rate-limit variant depends on timing, so a check can't predict it.

550 5.2.1: the Gmail account exists but is inactive, so the address should come off the list

What 550 5.2.1 means

In a 550 5.2.1 reply, 5.2.1 is defined in RFC 3463 as “Mailbox disabled, not accepting messages”: “The mailbox exists, but is not accepting messages.” The RFC adds that this “may be a permanent error if the mailbox will never be re-enabled or a transient error if the mailbox is only temporarily disabled.” With 550 in front, the receiving server says it’s permanent, so your server gives up and bounces the message: a hard bounce in the sense of the hard vs. soft bounce guide.

It belongs to the mailbox family of codes (X.2.X), next to the full-mailbox codes 452 4.2.2 and 552 5.2.2. Unlike 550 5.1.1, which says the address doesn’t exist, 550 5.2.1 confirms that it once did.

Gmail’s two 550 5.2.1 messages

Gmail documents this bounce. Google’s error list has two texts for it, and they call for opposite reactions:

ReplyMeaningWhat to do
550 5.2.1 The email account that you tried to reach is inactive.The Gmail account is inactiveRemove the address
550 5.2.1 The user you are trying to contact is receiving email at a rate that prevents additional messages from being delivered.The recipient gets too much mail right nowKeep the address; send less, later

Gmail uses the second text with a temporary code as well: 450 4.2.1 reads “receiving email at a rate that prevents additional messages” too, and there your server retries on its own. With 550 it doesn’t, so a message you still want to deliver has to be sent again later.

Microsoft’s NDR reference has no 5.2.1 entry. Its receiving limits come with other codes: 5.2.121 and 5.2.122 for per-hour receive limits, while its 5.2.2 means the sender exceeded a submission quota.

Why a mailbox stops accepting mail

Google doesn’t say what makes an account inactive, and RFC 3463 only says that the mailbox exists but is disabled. The reasons are all on the recipient’s side: an account nobody has used for a long time, a user that an organization suspended instead of deleting, or an account the provider switched off. None of them is something you can fix as a sender, and the bounce doesn’t tell you whether the mailbox will ever come back.

How to fix 550 5.2.1 as the sender

For an inactive account:

  1. Remove the address from your lists, or let your email service suppress it after the first bounce.
  2. If the person matters to you, ask for a new address through another channel.
  3. Look at where the address came from. Many 5.2.1 bounces in one send mean an old list: the email bounce rate guide has benchmarks and clean-up steps, and an email list cleaning service handles large lists.

For the rate-limit text:

  1. Don’t resend in a loop; that adds to the problem.
  2. If you send that person automated mail, such as alerts or notifications, bundle them into fewer messages.
  3. Try again later, by hand or with your next regular send.

If you’re the recipient’s admin

If a user you still want to reach is answered with 5.2.1, check in your admin console whether the account is suspended or disabled. Mail is accepted again once it’s active. For leavers, forwarding their mail to a colleague for a while lets senders find out without a bounce.

Would email verification have prevented it?

Partly. A verification asks the receiving server about the mailbox before you send. If the server refuses a disabled mailbox at that step, the check gets the same refusal, and the address comes back as undeliverable: catch these with the bulk email verifier before a campaign, or with the email checker at sign-up. The rate-limit variant depends on how much mail the person receives at the moment you send, which no check can predict.

Stop bounces before they happen

Most hard bounces come from addresses that don't exist. An email verification asks the receiving server about the mailbox without sending anything, so you can remove bad addresses before your next send.

Frequently asked questions

What does 550 5.2.1 mean?

The mailbox exists but is disabled and doesn't accept messages. At Gmail, the usual text is “The email account that you tried to reach is inactive.” Nobody reads mail at that address anymore.

Is 550 5.2.1 a hard bounce?

Yes, when it says the account is inactive or disabled: remove the address. The exception is Gmail's text about a user “receiving email at a rate that prevents additional messages from being delivered”, which is a rate limit on the recipient's side.

What is the difference between 550 5.2.1 and 550 5.1.1?

5.1.1 says the mailbox doesn't exist at all. 5.2.1 says it exists but is switched off. For your list the result is the same: remove the address. 5.2.1 just tells you it was once a real account.

Should I resend after a 550 5.2.1?

Not for an inactive account; it will bounce again and count against your bounce rate. For the rate-limit text, wait before sending to that person again, and avoid sending them many automated messages in a short time.

Related codes and guides

Email validation API

Validate emails in your app

emailvalidation.io checks syntax, MX records and the mailbox over SMTP, flags disposable, role and free addresses and returns a quality score, in one request.

/v1/info Email validation API Read the documentation

100 free validations every month. No credit card required.

GET https://api.emailvalidation.io/v1/info?email=support@emailvalidation.io

{
  "email": "support@emailvalidation.io",
  "user": "support",
  "tag": "",
  "domain": "emailvalidation.io",
  "format_valid": true,
  "mx_found": true,
  "smtp_check": true,
  "catch_all": null,
  "role": true,
  "disposable": false,
  "free": false,
  "score": 0.64,
  "state": "deliverable",
  "reason": "valid_mailbox",
  "did_you_mean": ""
}

Start using our email validation software today!

Get 100 validations per month for free