SMTP commands and common response codes in ZeptoMail

  • Published : December 30, 2025
  • Last Updated : December 30, 2025
  • 5 Views
  • 4 Min Read

Just like humans use languages, expressions, and cues to communicate, servers have their own way of talking to each other. For email servers, that language is the Simple Mail Transfer Protocol (SMTP). Every time an email travels from a sender to a recipient, servers exchange specific commands and response codes to make the delivery happen smoothly.

In our earlier articles, we covered what SMTP is, how it works, and what goes on behind the scenes. In this guide, we’ll go a layer deeper into the actual commands and error codes that shape the language SMTP servers use to communicate.

SMTP response code, SMTP commands

What is an SMTP command?

An SMTP command is a short instruction sent from an email client (like an application or mail server) to the receiving mail server during an email transaction.

These commands tell the server what to do next. It helps to identify the sender, specify the recipient, start sending the message content, end the session, and more.

A few characteristics of SMTP commands:

  • They’re text-based instructions.

  • Each command has a specific purpose in the mail transfer workflow.

  • They’re followed by server responses, which confirm whether the operation was successful or needs correction.

Common SMTP commands and their meanings

Command

Meaning

When is it used?

HELO

Introduces the client to the server with its domain name.

At the start of an SMTP session.

EHLO

Extended version of HELO. It also asks for server capabilities.

Preferred in modern SMTP sessions supporting ESMTP.

MAIL FROM:

Indicates the email sender’s address.

Before specifying recipients.

RCPT TO:

Specifies the recipient’s email address.

Repeated for each recipient.

DATA

Signals the server that the client is ready to send the message content.

After sender and recipient information is provided.

RSET

Resets the current session without closing the connection.

When the client wants to start the mail transaction over.

VRFY

Requests server to validate a username or email address.

Not widely supported due to privacy or security concerns.

NOOP

Performs no action but tests server availability.

Keeps the connection alive.

QUIT

Terminates the SMTP session.

End of the transaction.

What are SMTP response codes?

SMTP response codes are three-digit responses returned by a mail server to indicate the status of an email transaction. Every time an SMTP command is sent, the server replies with a code that explains whether the request was successful, requires more information, or encountered a temporary or permanent problem.

These codes help identify issues like invalid email addresses, authentication failures, server downtime, or delivery blocks. Understanding SMTP error codes makes troubleshooting faster and ensures smoother, more reliable email delivery. 

Common SMTP response codes and their meanings

Now that we've seen what SMTP codes do, let's quickly look at this table of frequently encountered SMTP codes and what they indicate.

How to read SMTP codes:

  • 1xx → Server error

  • 2xx → Success

  • 3xx → Further information required

  • 4xx → Temporary failure

  • 5xx → Permanent failure

1xx → Server error

This means there is an error from the server side.

Code

Meaning

What does it indicate?

101

Server unable to connect

The server is temporarily unable to establish a connection due to network issues or wrong server name/connection port.

2xx → Success

These mean the command was accepted and processed successfully.

Code

Meaning

What does it indicate?

211

System status

The server is responding with system info or help details.

214

Help message

The server is providing help documentation for commands.

220

Service ready

The SMTP server is ready to establish a TCP connection.

221

Service closing

The server closes the connection.

235

Authentication successful

The user has successfully authenticated. A response to AUTH command.

250

Requested action completed

The requested command completed successfully (common response code after MAIL FROM, RCPT TO commands).

251

User is not local, message will forward

The recipient isn’t local, but the server will forward to the provided forward path.

252

Cannot verify user, will accept and attempt delivery

The server can’t verify the recipient but will still attempt the message and attempt for delivery. This is a response to VRFY command.

3xx → Further information required

The server needs more information to continue.

Code

Meaning

What does it indicate?

334

Security mechanism

The server is requesting authentication credentials. This is usually sent as a response to the AUTH command.

354

Start mail input

The server is ready to receive the email content after DATA.

4xx → Temporary failure

These are retryable errors. The issue may resolve automatically.

Code

Meaning

What does it indicate?

421

Service not available

The server is temporarily unavailable (overload, maintenance).

422

Mailbox full

The recipient’s mailbox has exceeded the storage limit

431

File overload

The domain has been temporarily overloaded due to high message volume.

441

Connection timed out

The network or connection timeout occurred in the recipient's server.

442

Connection dropped

The SMTP connection was unexpectedly closed.

446

Routing loop detected

A message routing issue caused a loop.

450

Mailbox unavailable

The recipient mailbox is temporarily unavailable, busy, or blocked.

451

Local error in processing

The server encountered an internal error and could not process the command.

452

Insufficient system storage

The server lacks storage to process the message.

454

Temporary authentication failure

Authentication failed temporarily; retry later.

455

Server unable to process command

A temporary server-side issue.

471

Message temporarily rejected

Often due to spam filtering or IP reputation issues.

5xx → Permanent failure

These are non-retryable errors unless the issue is fixed.

Code

Meaning

What does it indicate?

500

Syntax error

The command is malformed or unrecognized by the server.

501

Invalid parameters

Incorrect command parameters.

502

Command not implemented

The server does not support this command.

503

Bad command sequence

Commands were sent in a wrong sequence.

504

Command parameter not implemented

The parameter is not supported by the server.

510

Invalid email address

The recipient address is invalid.

512

Host/domain not found

The recipient domain does not exist.

523

Encryption required

The server requires a secure connection (TLS).

530

Authentication required

The server requires authentication before sending.

535

Authentication failed

Invalid username or password.

538

Encryption required for authorization

Authentication requires TLS encryption.

541

Message rejected

The email is blocked due to policy or content restrictions.

550

Mailbox unavailable

The recipient does not exist or is blocked.

551

User not local

The recipient does not exist on this server.

552

Storage allocation exceeded

The recipient mailbox is full (permanent).

553

Mailbox name not allowed

Invalid email address format.

554

Transaction failed

The message was rejected due to spam or policy reasons.

555

Invalid address syntax

Incorrect recipient address format.

SMTP session example

Server: 220 (Service ready)
Client: EHLO (yourdomain.com)
Server: 250 OK (server capabilities listed)
Client: MAIL FROM:<sender@example.com>
Server: 250 OK
Client: RCPT TO:<recipient@example.com>
Server: 250 OK
Client: DATA
Server: 354 (Start mail input)
Client: . (Client sends message body ending with a single period)
Server: 250 (Message accepted)
Client: QUIT
Server: 221 (Service closing connection)

Wrapping up

SMTP commands and error codes are the foundation of how email servers communicate. Understanding them helps you see what’s happening behind every email sent. With a reliable SMTP service like Zoho ZeptoMail, these responses are easier to understand. ZeptoMail's clear error messages, detailed reports, and delivery insights help teams troubleshoot faster. ZeptoMail also ensures consistent transactional email delivery at scale.

Related Topics

Leave a Reply

Your email address will not be published. Required fields are marked

By submitting this form, you agree to the processing of personal data according to our Privacy Policy.

You may also like