ehlo-codes

Explore EHLO response codes used in SMTP for email communication. Understand server capabilities like PIPELINING, SIZE, STARTTLS, and AUTH with this comprehensive cheat-sheet.

EHLO Response Codes Reference

Understanding EHLO Response Codes

The EHLO (Extended Hello) command is a crucial part of the Simple Mail Transfer Protocol (SMTP) used for sending emails. When a client connects to an SMTP server, it sends the EHLO command to identify itself and to discover the extensions (capabilities) that the server supports. The server responds with a list of these extensions, each prefixed with a 250 status code. Understanding these EHLO response codes is essential for diagnosing email delivery issues and for developers building email clients or servers.

Please note that the presence and specific EHLO response codes will depend on the SMTP server software, its version, and its configuration. The following table includes some commonly encountered EHLO response codes, but it may not cover every possible code or extension.

Common EHLO Response Codes and Their Meanings

EHLO Response Code Description
250 Requested mail action okay, completed. This is a general success code for many SMTP commands.
250-PIPELINING Server supports command pipelining, allowing multiple commands to be sent in a single network round trip.
250-SIZE <value> Server specifies the maximum message size (in bytes) it can accept. This is vital for preventing oversized emails.
250-ETRN Server supports the ETRN (Extended Turn) extension, which allows a client to request mail delivery from the server.
250-ENHANCEDSTATUSCODES Server uses enhanced status codes, providing more detailed error information than standard SMTP codes.
250-8BITMIME Server supports the 8BITMIME extension, allowing the transmission of non-ASCII characters in email bodies.
250-DSN Server supports Delivery Status Notifications (DSN), which provide feedback on the delivery status of emails.
250-STARTTLS Server supports STARTTLS, a command that upgrades a plain text connection to an encrypted TLS/SSL connection.
250-AUTH <authentication_types> Server specifies the supported authentication types (e.g., LOGIN, PLAIN, CRAM-MD5) for client authentication.
250-DELIVERBY Server supports the DELIVERBY extension, allowing clients to specify a time by which the email must be delivered.
250-RSET Server supports the RSET command, which resets the SMTP connection's state.
250-HELP Server provides help information upon request.
250-BINARYMIME Server supports binary MIME (Multipurpose Internet Mail Extensions), often used for attachments.
250-CHUNKING Server supports chunking for message transmission, breaking large messages into smaller parts.
250-EXPN Server supports the EXPN command, which expands a mailing list to show its members (often disabled for security).
250-VRFY Server supports the VRFY command, which verifies the existence of a mailbox (often disabled for security).
250-X-EXPS <extension> Server supports an additional, non-standard extension. The specific extension is indicated by <extension>.
250 X-LINK2STATE Server provides link-related state information, often specific to certain mail server implementations.

Importance of EHLO Codes in Email Communication

The EHLO command and its associated response codes are fundamental to modern email communication. They enable clients to adapt their behavior based on the server's capabilities, ensuring efficient and secure mail transfer. For instance, knowing the server supports STARTTLS allows the client to initiate an encrypted session, protecting sensitive email content. Similarly, the SIZE extension helps prevent mail loops and wasted resources by informing the sender of the maximum message size. Developers can leverage this information to build more robust and compatible email applications.

Further Resources