Reply Codes and Commands
These SMTP commands and reply codes may be helpful in testing a mailserver, troubleshooting a problem, or interpreting a non-delivery report. For example, if you receive a non-delivery which does not provide a clear written explanation of why the message was not delivered, look for the error code. Once you find the error code you can look up the meaning on this page. Please keep in mind that the codes and meanings listed below are the RFC compliant meanings of those codes, however many mail servers are not RFC compliant and use error codes for other meanings such as rejecting spam.
SMTP REPLY CODES IN NUMERIC ORDER
- Code – Meaning
- 200 – (nonstandard success response, see rfc876)
- 211 – System status, or system help reply
- 214 – Help message
- 220 – Service ready
- 221 – Service closing transmission channel
- 250 – Requested mail action okay, completed
- 251 – User not local; will forward to
- 354 – Start mail input; end with .
- 421 – Service not available, closing transmission channel
- 450 – Requested mail action not taken: mailbox unavailable
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 503 – Bad sequence of commands
- 504 – Command parameter not implemented
- 521 – does not accept mail (see rfc1846)
- 530 – Access denied (???a Sendmailism)
- 535 – SMTP Authentication unsuccessful/Bad username or password
- 550 – Requested action not taken: mailbox unavailable
- 551 – User not local; please try
- 552 – Requested mail action aborted: exceeded storage allocation
- 553 – Requested action not taken: mailbox name not allowed
- 554 – Transaction failed
INTERPRETING ERRORS – WHAT THEY MEAN
- There are four values for the first digit of the reply code:
- 1yz Positive Preliminary reply
- The requested action is being initiated; expect another reply before proceeding with a new command. This type of reply can be used to indicate that the command was accepted.
- 2yz Positive Completion reply
- The requested action has been successfully completed. A new request may be initiated.
- 3yz Positive Intermediate reply
- The command has been accepted, but the requested action is being held in abeyance, pending receipt of further information. The user should send another command specifying this information.
- 4yz Transient Negative Completion reply
- The command was not accepted and the requested action did not take place, but the error condition is temporary and the action may be requested again.
- 5yz Permanent Negative Completion reply
- The command was not accepted and the requested action did not take place. The User-process is discouraged from repeating the exact request. Even some "permanent" error conditions can be corrected, so the human user may want to retry the command after conditions have changed.
- The following function groupings are encoded in the second digit:
- x0z Syntax
- These replies refer to syntax errors, syntactically correct commands that don't fit any functional category, unimplemented or superfluous commands.
- x1z Information
- These are replies to requests for information, such as status or help.
- x2z Connections
- Replies referring to the TELNET and data connections.
- x3z Authentication and accounting
- Replies for the logon process and accounting procedures.
- x4z Unspecified
- as yet
- x5z File system
- These replies indicate the status of the Server file system vis-a-vis the requested transfer or other file system action.
SMTP REPLY CODES GROUPED BY COMMAND
- COMMAND
- Code – Description
- CONNECT
- 220 – Service ready
- 421 – Service not available, closing transmission channel
- HELO
- 250 – Requested mail action okay, completed
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 504 – Command parameter not implemented
- 521 – does not accept mail [rfc1846]
- 421 – Service not available, closing transmission channel
- EHLO
- 250 – Requested mail action okay, completed
- 550 – Not implemented
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 504 – Command parameter not implemented
- 421 – Service not available, closing transmission channel
- MAIL
- 250 – Requested mail action okay, completed
- 552 – Requested mail action aborted: exceeded storage allocation
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 421 – Service not available, closing transmission channel
- RCPT
- 250 – Requested mail action okay, completed
- 251 – User not local; will forward to
- 550 – Requested action not taken: mailbox unavailable
- 551 – User not local; please try
- 552 – Requested mail action aborted: exceeded storage allocation
- 553 – Requested action not taken: mailbox name not allowed
- 450 – Requested mail action not taken: mailbox unavailable
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 503 – Bad sequence of commands
- 521 – does not accept mail [rfc1846]
- 421 – Service not available, closing transmission channel
- DATA
- 354 – Start mail input; end with .
- 451 – Requested action aborted: local error in processing
- 554 – Transaction failed
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 503 – Bad sequence of commands
- 421 – Service not available, closing transmission channel
- RECEIVED DATA
- 250 – Requested mail action okay, completed
- 552 – Requested mail action aborted: exceeded storage allocation
- 554 – Transaction failed
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- RSET
- 200 – (nonstandard success response, see rfc876)
- 250 – Requested mail action okay, completed
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 504 – Command parameter not implemented
- 421 – Service not available, closing transmission channel
- SEND
- 250 – Requested mail action okay, completed
- 552 – Requested mail action aborted: exceeded storage allocation
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 421 – Service not available, closing transmission channel
- SOML
- 250 – Requested mail action okay, completed
- 552 – Requested mail action aborted: exceeded storage allocation
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 421 – Service not available, closing transmission channel
- SAML
- 250 – Requested mail action okay, completed
- 552 – Requested mail action aborted: exceeded storage allocation
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 421 – Service not available, closing transmission channel
- VRFY
- 250 – Requested mail action okay, completed
- 251 – User not local; will forward to
- 550 – Requested action not taken: mailbox unavailable
- 551 – User not local; please try
- 553 – Requested action not taken: mailbox name not allowed
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 504 – Command parameter not implemented
- 421 – Service not available, closing transmission channel
- EXPN
- 250 – Requested mail action okay, completed
- 550 – Requested action not taken: mailbox unavailable
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 504 – Command parameter not implemented
- 421 – Service not available, closing transmission channel
- HELP
- 211 – System status, or system help reply
- 214 – Help message
- 500 – Syntax error, command unrecognised
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 504 – Command parameter not implemented
- 421 – Service not available, closing transmission channel
- NOOP
- 200 – (nonstandard success response, see rfc876)
- 250 – Requested mail action okay, completed
- 500 – Syntax error, command unrecognised
- 421 – Service not available, closing transmission channel
- QUIT
- 221 – Service closing transmission channel
- 500 – Syntax error, command unrecognised
- TURN
- 250 – Requested mail action okay, completed
- 502 – Command not implemented
- 500 – Syntax error, command unrecognised
- 503 – Bad sequence of commands