SMTP reply codes
Reference for three-digit SMTP reply codes and the enhanced status codes (X.Y.Z) that come with email bounces and rejections. Search by code or text, or paste the full line the server returned.

117 of 117 codes

Basic reply codes

2xxPositive completion reply9
211System status

System status or system help reply. Rarely used in practice.

RFC 5321
214Help message

Help message in response to the HELP command, with information on how to use the server or a specific command.

RFC 5321
220Service ready

The server's initial greeting when the connection opens: the service is ready. Also returned in response to STARTTLS to indicate that TLS negotiation can begin.

RFC 5321
221Service closing transmission channel

The server is closing the connection, usually in response to the QUIT command.

RFC 5321
235Authentication successful

Authentication with AUTH succeeded. Usually accompanied by the enhanced code 2.7.0.

RFC 4954
250Requested mail action okay, completed

The requested action was completed. This is the usual reply to EHLO, MAIL FROM, RCPT TO and at the end of DATA, when the server accepts the message.

RFC 5321
251User not local; will forward

The recipient is not local, but the server accepts the message and will forward it to the specified address.

RFC 5321
252Cannot VRFY user, but will accept message

The server does not confirm whether the user exists (VRFY disabled to prevent account enumeration), but will accept the message and attempt delivery.

RFC 5321
253OK, pending messages for node started

Reply to ETRN: the server has started delivering the messages queued for the requested domain or node.

RFC 1985 (ETRN)
3xxPositive intermediate reply2
334Server challenge

Server challenge during AUTH, Base64-encoded. The client must reply with the next piece of data for the mechanism (for example, the username or the password in AUTH LOGIN).

RFC 4954
354Start mail input

Reply to DATA: the server is waiting for the message content, which ends with a line containing only a period.

RFC 5321
4xxTransient error9
421Service not available, closing transmission channel

The service is not available and the server is closing the connection: shutdown, overload, too many connections or a temporary sending limit. The sender should retry later.

RFC 5321
432A password transition is needed

The user must change their password or switch to another authentication mechanism before they can authenticate. Accompanied by the enhanced code 4.7.12.

RFC 4954
450Requested mail action not taken: mailbox unavailable

The mailbox is temporarily unavailable: busy, locked or transiently rejected by policy. Greylisting usually replies with this code or with 451.

RFC 5321
451Requested action aborted: local error in processing

The action was aborted due to a local server error, such as a failed DNS lookup or a filter that did not respond. The sender should retry later.

RFC 5321
452Requested action not taken: insufficient system storage

The server does not have enough storage to accept the message right now. It also indicates that the number of recipients per message was exceeded: the client should send the rest in another transaction.

RFC 5321
454Temporary authentication failure

Temporary authentication failure (for example, the credentials server is not responding) or TLS temporarily unavailable when STARTTLS is requested.

RFC 4954 / RFC 3207
455Server unable to accommodate parameters

The server cannot accommodate the parameters sent in MAIL FROM or RCPT TO right now, but might accept them later.

RFC 5321
458Unable to queue messages for node

Reply to ETRN: the server cannot process the message queue for the requested node right now.

RFC 1985 (ETRN)
459Node not allowed

Reply to ETRN: the requested node or domain is not allowed to request delivery of its queue.

RFC 1985 (ETRN)
5xxPermanent error17
500Syntax error, command unrecognized

The server does not recognize the command, or the line is too long. AUTH also uses it when a line of the exchange exceeds the maximum allowed length.

RFC 5321
501Syntax error in parameters or arguments

The command is valid, but its parameters or arguments are not: for example, a malformed address in MAIL FROM or an invalid name in EHLO.

RFC 5321
502Command not implemented

The server recognizes the command but does not implement it or has it disabled, like VRFY or EXPN on many servers.

RFC 5321
503Bad sequence of commands

The commands arrived in the wrong order, for example RCPT TO before MAIL FROM, or DATA without valid recipients. Some servers return it when you try to send without authenticating.

RFC 5321
504Command parameter not implemented

The server does not accept the specified parameter, for example an AUTH mechanism it does not support.

RFC 5321
521Server does not accept mail

The host does not accept mail of any kind. It is sent as the greeting instead of 220, and the client must not retry.

RFC 7504
530Authentication required

The server requires authentication, or starting TLS with STARTTLS, before accepting the command. Typical when using submission port 587 without credentials.

RFC 4954 / RFC 3207
534Authentication mechanism is too weak

The chosen authentication mechanism is too weak according to the server's policy. Some providers return it when they require app passwords or OAuth.

RFC 4954
535Authentication credentials invalid

Wrong username or password, or credentials rejected. Accompanied by the enhanced code 5.7.8.

RFC 4954
538Encryption required for requested authentication mechanism

The chosen authentication mechanism is only allowed over an encrypted connection: STARTTLS must be run first.

RFC 4954
550Requested action not taken: mailbox unavailable

The mailbox does not exist or is unavailable, or the message was rejected by policy (spam, blacklists, SPF, DKIM or DMARC). The enhanced code that accompanies it indicates the specific cause.

RFC 5321
551User not local; please try forward-path

The recipient is not local and the server does not forward the message; it may indicate which address to send it to.

RFC 5321
552Requested mail action aborted: exceeded storage allocation

Storage allocation exceeded: the recipient's mailbox is full or the message exceeds the maximum size advertised by the SIZE extension.

RFC 5321
553Requested action not taken: mailbox name not allowed

The email address is invalid or not allowed, for example because of incorrect syntax or because the sender is not allowed to use that address.

RFC 5321
554Transaction failed

The transaction failed. As the initial greeting it means there is no SMTP service for that client; after DATA, that the message was rejected, often because of its content or the sender's reputation.

RFC 5321
555MAIL FROM/RCPT TO parameters not recognized or not implemented

The server does not recognize or implement an extension parameter sent in MAIL FROM or RCPT TO.

RFC 5321
556Domain does not accept mail

The recipient's domain publishes a null MX (an MX record pointing to “.”): it declares that it does not accept mail, so there is no point in retrying.

RFC 7504

Enhanced status codes (RFC 3463)

2.X.XSuccess4.X.XPersistent transient failure5.X.XPermanent failure
X.0Other or undefined1
X.0.0Other undefined status

Status with no further detail: used when only the class of the result is known (success, transient or permanent failure).

RFC 3463
X.1Addressing11
X.1.0Other address status

There is a problem with an address in the message that does not fit the more specific codes.

RFC 3463
X.1.1Bad destination mailbox address

The recipient's mailbox does not exist on the destination server. This is the classic bounce for a mistyped address or a closed account.

RFC 3463Used with
X.1.2Bad destination system address

The destination domain or system does not exist or cannot accept mail, for example because the domain does not resolve.

RFC 3463
X.1.3Bad destination mailbox address syntax

The recipient address has invalid syntax.

RFC 3463Used with
X.1.4Destination mailbox address ambiguous

The recipient address matches more than one mailbox on the destination system.

RFC 3463
X.1.5Destination address valid

The recipient address is valid. Appears as 2.1.5 in the positive reply to RCPT TO.

RFC 3463Used with
X.1.6Destination mailbox has moved, No forwarding address

The mailbox existed but has moved, and there is no known forwarding address.

RFC 3463
X.1.7Bad sender's mailbox address syntax

The sender address has invalid syntax.

RFC 3463
X.1.8Bad sender's system address

The sender's domain does not exist or does not accept replies, for example because it has neither MX nor A records.

RFC 3463Used with
X.1.9Message relayed to non-compliant mailer

The message was delivered to a system that does not support status notifications, so its final delivery cannot be confirmed.

RFC 3886
X.1.10Recipient address has null MX

The recipient's domain publishes a null MX: it declares that it does not accept mail.

RFC 7505Used with
X.2Mailbox5
X.2.0Other or undefined mailbox status

The mailbox exists, but something related to it prevented delivery and there is no more specific code.

RFC 3463
X.2.1Mailbox disabled, not accepting messages

The mailbox exists but is disabled and does not accept messages, for example a suspended account.

RFC 3463
X.2.2Mailbox full

The recipient's mailbox has exceeded its storage quota.

RFC 3463Used with
X.2.3Message length exceeds administrative limit

The message exceeds the maximum size the recipient is allowed to receive.

RFC 3463Used with
X.2.4Mailing list expansion problem

The recipient is a distribution list and could not be expanded into its members.

RFC 3463Used with
X.3Mail system7
X.3.0Other or undefined mail system status

The destination system had a problem that does not fit the more specific codes.

RFC 3463Used with
X.3.1Mail system full

The destination mail system's storage is full.

RFC 3463Used with
X.3.2System not accepting network messages

The destination host is not accepting messages, due to an imminent shutdown, overload or maintenance.

RFC 3463 / RFC 7504Used with
X.3.3System not capable of selected features

The destination system does not support a feature the message requires.

RFC 3463
X.3.4Message too big for system

The message exceeds the maximum size the server accepts for any recipient.

RFC 3463Used with
X.3.5System incorrectly configured

The destination system is misconfigured and cannot accept the message.

RFC 3463
X.3.6Requested priority was changed

The message was accepted, but with a different priority than the one requested (MT-PRIORITY extension).

RFC 6710Used with
X.4Network and routing8
X.4.0Other or undefined network or routing status

There was a network or routing problem that does not fit the more specific codes.

RFC 3463
X.4.1No answer from host

The destination server did not answer the connection attempt.

RFC 3463Used with
X.4.2Bad connection

The connection was established but dropped or became unstable before the delivery was completed.

RFC 3463Used with
X.4.3Directory server failure

A directory service required for delivery failed, typically DNS resolution.

RFC 3463Used with
X.4.4Unable to route

No route to the destination was found, for example because the domain has no usable MX or A records.

RFC 3463
X.4.5Mail system congestion

The mail system is congested and cannot process the message right now.

RFC 3463Used with
X.4.6Routing loop detected

A routing loop was detected: the message went through the same servers too many times.

RFC 3463
X.4.7Delivery time expired

The maximum retry time expired and the message is discarded without having been delivered.

RFC 3463
X.5Delivery protocol7
X.5.0Other or undefined protocol status

There was a delivery protocol problem that does not fit the more specific codes.

RFC 3463Used with
X.5.1Invalid command

The command is invalid, not allowed at that point or not recognized.

RFC 3463Used with
X.5.2Syntax error

The command has a syntax error and the server cannot interpret it.

RFC 3463Used with
X.5.3Too many recipients

The message has more recipients than the server accepts in a single transaction.

RFC 3463Used with
X.5.4Invalid command arguments

The command is valid, but its arguments are invalid or not supported.

RFC 3463Used with
X.5.5Wrong protocol version

There is a protocol version mismatch between the client and the server.

RFC 3463
X.5.6Authentication Exchange line is too long

A line of the AUTH exchange exceeds the maximum length the server supports.

RFC 4954Used with
X.6Message content10
X.6.0Other or undefined media error

There was a problem with the message content that does not fit the more specific codes.

RFC 3463
X.6.1Media not supported

The destination does not support the content type of the message or of one of its attachments.

RFC 3463
X.6.2Conversion required and prohibited

Delivering the message would require converting its content, but the sender prohibited it.

RFC 3463
X.6.3Conversion required but not supported

Delivering the message would require converting its content, and the server does not know how to do it.

RFC 3463Used with
X.6.4Conversion with loss performed

The message was delivered, but information was lost in the content conversion.

RFC 3463Used with
X.6.5Conversion Failed

The conversion of the message content failed.

RFC 3463
X.6.6Message content not available

The message content referenced by URL could not be retrieved (BURL extension).

RFC 4468Used with
X.6.7Non-ASCII addresses not permitted for that sender/recipient

The sender or the recipient does not support addresses with non-ASCII characters (internationalized email, SMTPUTF8).

RFC 6531Used with
X.6.8UTF-8 string reply is required, but not permitted by the SMTP client

The server needs to reply with UTF-8 text, but the client did not advertise SMTPUTF8 support.

RFC 6531Used with
X.6.9UTF-8 header message cannot be transferred to one or more recipients

The message has UTF-8 headers and cannot be transferred to one or more recipients that do not support them, so it is rejected.

RFC 6531Used with
X.7Security and policy31
X.7.0Other or undefined security status

Security status with no further detail. Appears on successful authentication (2.7.0), temporary AUTH failures (4.7.0) and policy rejections.

RFC 3463Used with
X.7.1Delivery not authorized, message refused

The sender is not authorized to send to that recipient: blocked because of a blacklist, reputation, anti-spam filtering or a disallowed relay attempt. In its 4.7.1 form it usually indicates greylisting.

RFC 3463Used with
X.7.2Mailing list expansion prohibited

The sender is not allowed to send to that distribution list.

RFC 3463Used with
X.7.3Security conversion required but not possible

The message would have to be converted from one security protocol to another, and that is not possible.

RFC 3463
X.7.4Security features not supported

The message requires security features that the destination does not support.

RFC 3463Used with
X.7.5Cryptographic failure

A cryptographic operation failed in transport, for example signature verification or decryption.

RFC 3463
X.7.6Cryptographic algorithm not supported

The destination does not support the cryptographic algorithm used in the message.

RFC 3463
X.7.7Message integrity failure

The integrity check failed: the message was modified in transit or the checksum does not match.

RFC 3463
X.7.8Authentication credentials invalid

The authentication credentials are invalid: wrong username or password.

RFC 4954Used with
X.7.9Authentication mechanism is too weak

The chosen authentication mechanism is weaker than the server's policy requires.

RFC 4954Used with
X.7.10Encryption Needed

An external encryption layer, such as TLS, is required to use the requested authentication mechanism. Intended mainly for mechanisms that send the password in plain text.

RFC 5248Used with
X.7.11Encryption required for requested authentication mechanism

The requested authentication mechanism is only allowed over an encrypted connection.

RFC 4954Used with
X.7.12A password transition is needed

The user must change their password or switch to another authentication mechanism.

RFC 4954Used with
X.7.13User Account Disabled

The account of the user trying to authenticate is disabled.

RFC 5248Used with
X.7.14Trust relationship required

The server only accepts messages from systems it has an established trust relationship with.

RFC 5248Used with
X.7.15Priority Level is too low

The message priority is too low for it to be accepted right now (MT-PRIORITY extension).

RFC 6710Used with
X.7.16Message is too big for the specified priority

The message is too large for the specified priority (MT-PRIORITY extension).

RFC 6710Used with
X.7.17Mailbox owner has changed

The mailbox has changed owner since the date given by the sender, so the message is not delivered (RRVS extension).

RFC 7293
X.7.18Domain owner has changed

The recipient's domain has changed owner since the date given by the sender (RRVS extension).

RFC 7293
X.7.19RRVS test cannot be completed

The server cannot verify whether the mailbox has changed owner, as the sender requested (RRVS extension).

RFC 7293
X.7.20No passing DKIM signature found

The message has no valid DKIM signature and the receiver's policy requires one.

RFC 7372Used with
X.7.21No acceptable DKIM signature found

The message has valid DKIM signatures, but none of them meets the receiver's policy (for example, because of the signing domain or the algorithm).

RFC 7372Used with
X.7.22No valid author-matched DKIM signature found

The message has no valid DKIM signature from the same domain that appears in the From header.

RFC 7372Used with
X.7.23SPF validation failed

The sending IP is not authorized in the sender domain's SPF record.

RFC 7372Used with
X.7.24SPF validation error

The SPF evaluation returned an error, for example because of a malformed record or too many DNS lookups.

RFC 7372Used with
X.7.25Reverse DNS validation failed

The sending IP has no reverse DNS (PTR), or the name it returns does not resolve back to that IP.

RFC 7372Used with
X.7.26Multiple authentication checks failed

Several message authentication checks failed at once, such as SPF and DKIM.

RFC 7372Used with
X.7.27Sender address has null MX

The sender's domain publishes a null MX, so it could not receive replies or bounces, and the message is rejected.

RFC 7505Used with
X.7.28Mail flood detected

The message appears to be part of a mass mailing of similar abusive messages.

draft-levine-mailbomb-header
X.7.29ARC validation failure

Validation of the ARC chain failed; ARC preserves authentication results when the message passes through forwarders or mailing lists.

RFC 8617Used with
X.7.30REQUIRETLS support required

The message requires REQUIRETLS and the next server on the route does not support that extension, so it cannot be delivered with guaranteed encryption.

RFC 8689Used with

Paste the full server response, for example 550 5.7.1 Message rejected, to see both the basic and the enhanced code at once. For a basic code, the search also shows the enhanced codes that usually accompany it.

How it works

In an SMTP session, every client command (EHLO, MAIL FROM, RCPT TO, DATA…) gets a reply from the server that starts with a three-digit code. The first digit tells how it ended: 2 means success, 3 that the server expects more data, 4 a transient error and 5 a permanent error. The second indicates the area: x0z syntax, x1z information, x2z connections and x5z mail system. The text after the code is free-form and each server writes its own; software only looks at the number.

Since three digits say little about the cause, RFC 3463 defined enhanced status codes, in class.subject.detail format: 5.1.1 is a permanent failure (5) related to addressing (1) because the mailbox does not exist (1). The class repeats the meaning of the first digit (2, 4 or 5), the subject groups the cause and the detail pins it down. Servers that use them advertise it with the ENHANCEDSTATUSCODES extension in their EHLO reply, and the same code appears in the Status field of bounce messages.

The table brings together the basic codes from RFC 5321 and those added by commonly used extensions (AUTH, STARTTLS, ETRN and null MX), plus every enhanced code in the IANA registry, along with the basic codes each one usually appears with. Large providers add their own messages and help links, but always on top of these same numbers.

Examples

550 5.1.1 <nadie@example.com>: Recipient address rejected: User unknown in local recipient table5xx Permanent · X.1.1 Bad destination mailbox addressPostfix's typical bounce when the account does not exist. Retrying won't help: the address has to be fixed. If the same recipient used to work, the account has most likely been closed.
450 4.2.0 <ana@example.com>: Recipient address rejected: Greylisted4xx Transient · X.2.0 Other or undefined mailbox statusGreylisting: the server temporarily rejects the unknown sender and expects it to retry. A legitimate mail server does so automatically after a few minutes and the message gets through; many spam tools never retry.
AUTH LOGIN334 VXNlcm5hbWU6The 334 carries the challenge in Base64: VXNlcm5hbWU6 is “Username:” and the next one, UGFzc3dvcmQ6, is “Password:”. If the credentials are wrong, the server replies 535 5.7.8; if it requires encryption first, 538 or 530.

Use cases

  • Understand why an email bounced from the error message the server returned.
  • Tell whether an error is transient and the queue will retry it, or permanent and you need to act.
  • Diagnose authentication failures when setting up email sending from an application, a printer or a server.
  • Interpret rejections caused by SPF, DKIM, DMARC, reverse DNS or blacklists in mail server logs.
  • Classify bounces in a bulk email platform to remove nonexistent addresses.
  • Read an SMTP session captured with telnet, openssl s_client or swaks.

Frequently asked questions

What is the difference between a 4xx and a 5xx error?

A 4xx is transient: the sending server keeps the message in its queue and retries it periodically, usually for four or five days, before giving up and generating a bounce. A 5xx is permanent: the bounce is immediate, and retrying the same message without changing anything will fail again.

Why does the reply contain two codes, such as 550 5.1.1?

The first is the three-digit basic code required by RFC 5321. The second is the RFC 3463 enhanced status code, which pinpoints the cause: a 550 can be due to a nonexistent mailbox (5.1.1), a policy block (5.7.1) or an SPF failure (5.7.23). For troubleshooting, focus mainly on the enhanced code.

What does the hyphen in 550-5.7.1 mean?

That the reply spans several lines. All of them carry the same code, but the intermediate lines separate it from the text with a hyphen and the last one with a space, so the client knows when the reply has ended. It is the same thing you see in the list of extensions returned by EHLO.

Why am I rejected with 550 5.7.1 if the address exists?

Because 5.7.1 is not about the recipient but about the sender: the server does not authorize you to deliver that message. The usual causes are that the sending IP is on a blacklist, that the domain's SPF, DKIM or DMARC check fails, that the IP has no reverse DNS, or that there was an attempt to use the server as a relay without authenticating. The text that comes with the code usually gives a clue.

Why do I get 530 or 535 when sending email from an application?

530 means the server requires authentication, or starting TLS, before accepting the message; 535 means the username or password is wrong. Check that the application uses port 587 with STARTTLS or port 465 with implicit TLS, that authentication is enabled and, with providers such as Gmail or Microsoft 365, that you use an app password or OAuth instead of your regular password.