RFC 1869: SMTP Service Extensions (ESMTP)

Defines the EHLO command and the ESMTP extension framework that all modern SMTP servers use.
Alaa
By Alaa
SMTPedia documents email infrastructure end to end: SMTP standards from the RFC archive, delivera...
7 min read Updated Jul 22, 2026 69 views
RFC 1869
SMTP Service Extensions (ESMTP)
Current standard
Domain
SMTP
Published
November 1995
Obsoletes
RFC 1651
SMTP relevance
Foundational
↗ Read on rfc-editor.org

What this RFC defines

RFC 1869 defines ESMTP (Extended Simple Mail Transfer Protocol) and the EHLO command. It introduces the extension framework that allows SMTP servers to advertise optional capabilities to connecting clients: AUTH, STARTTLS, SIZE, 8BITMIME, and others. Before ESMTP, SMTP had no mechanism to negotiate optional features.

Where you see it in practice

When your MTA connects to a receiving server and sends EHLO yourdomain.com, the list of 250- capability lines in the response (250-STARTTLS, 250-AUTH PLAIN LOGIN, 250-SIZE 52428800) is the ESMTP extension advertisement defined by RFC 1869. Every modern SMTP transaction begins with this EHLO exchange. Servers that only support the older HELO command cannot use any of the extensions built on RFC 1869.

How it connects to other RFCs

RFC 1869 obsoletes RFC 1651 and is the foundation for all SMTP extension RFCs. RFC 3207 (STARTTLS), RFC 4954 (AUTH), RFC 1870 (SIZE), RFC 6152 (8BITMIME), and RFC 6409 (submission) all advertise their capabilities via the EHLO mechanism RFC 1869 defines. RFC 5321 incorporates and updates the EHLO concept.

Current status

RFC 1869 is a current standard, published November 1995. The ESMTP extension framework it defines is the basis of all modern SMTP capability negotiation and is universally supported by every mail server on the internet.

The extension mechanism itself

RFC 1869 introduced the ESMTP framework in November 1995. Rather than modifying the base SMTP protocol from RFC 821, the authors created a negotiation mechanism: a client greets the server with EHLO instead of HELO, and the server responds with a list of extensions it supports, one per line. Each extension has a keyword (SIZE, STARTTLS, AUTH, 8BITMIME, PIPELINING) and optional parameters. This design allowed SMTP to evolve without breaking legacy servers, since any server that does not recognize EHLO can be reprobed with HELO for baseline behavior.

Extensions that grew from this framework

Every major SMTP capability added since 1995 is a separate RFC that plugs into the RFC 1869 framework. RFC 1870 defined the SIZE keyword for message size declaration. RFC 3207 defined STARTTLS for opportunistic encryption. RFC 4954 defined AUTH for authenticated submission. RFC 6152 defined 8BITMIME for eight-bit-clean transport. RFC 2920 defined PIPELINING for command batching. RFC 6531 defined SMTPUTF8 for internationalized addresses. Without the RFC 1869 extension mechanism, each of these would have required a fork of the base protocol.

Current status and integration

RFC 1869 was folded into the RFC 5321 base standard in 2008; you rarely see it cited by itself in new work. However, it remains the conceptual foundation for how SMTP evolves. Understanding the EHLO negotiation is essential for debugging: if an EHLO response is missing an expected extension, either the server does not support it, or a firewall or middlebox is stripping the capability line. Both scenarios cause real deliverability issues that trace back to RFC 1869 negotiation.

Quick Reference

RFC 1869 (November 1995) defined SMTP Service Extensions and the EHLO command: the mechanism that lets SMTP clients discover which extensions a server supports. Introduced multi-line 250 responses listing capabilities. Every modern SMTP extension (STARTTLS, AUTH, 8BITMIME, SMTPUTF8, SIZE, PIPELINING, CHUNKING, DSN) depends on this mechanism. Obsoleted by RFC 2821 (2001), which was folded into RFC 5321 (2008). Reference for current EHLO behavior: RFC 5321.

RFC 1869 at a glance

AspectDetail
PurposeIntroduce extensibility to SMTP via EHLO capability discovery
Key commandEHLO replaces HELO for extensibility-aware sessions
Response formatMulti-line 250 with capability keywords
FallbackClient can retry with HELO if server doesn’t support EHLO
Enabled extensionsSIZE, PIPELINING, STARTTLS, AUTH, 8BITMIME, SMTPUTF8, DSN, CHUNKING
PublishedNovember 1995
Superseded byRFC 2821 (2001), then RFC 5321 (2008)

EHLO vs HELO

AspectHELO (original RFC 821)EHLO (RFC 1869)
ResponseSingle line 250Multi-line 250 with capabilities
Extension supportNone advertisedEach supported extension listed
Modern usageFallback only (legacy servers)Default for all modern clients
Command parametersClient identity onlyClient identity plus optional parameters

EHLO dialogue example

Modern EHLO session showing typical capabilities S: 220 mx.example.com ESMTP Postfix C: EHLO client.sender.com S: 250-mx.example.com Hello client.sender.com S: 250-SIZE 52428800 S: 250-PIPELINING S: 250-STARTTLS S: 250-AUTH LOGIN PLAIN CRAM-MD5 XOAUTH2 S: 250-8BITMIME S: 250-SMTPUTF8 S: 250-DSN S: 250-ENHANCEDSTATUSCODES S: 250 CHUNKINGMulti-line response format: 250- Not the last line (dash after code) 250 Last line (space after code)Each capability line format: KEYWORD [parameter parameter …]Common capabilities: SIZE nnnn Maximum message size in bytes PIPELINING Client can send commands without waiting STARTTLS TLS upgrade via RFC 3207 AUTH mechanism1 mechanism2 … SMTP AUTH mechanisms available 8BITMIME 8-bit clean transport SMTPUTF8 Internationalized addresses DSN Delivery status notification parameters CHUNKING BDAT command support ENHANCEDSTATUSCODES Extended status codes

Common EHLO/extension mistakes

Advertising an extension the server does not actually support. If EHLO lists STARTTLS but the server rejects the STARTTLS command, clients see broken behavior. Testing after configuration changes catches misalignment. Some MTAs advertise extensions based on package installation status, which can drift from actual runtime capability.
Not falling back to HELO when EHLO fails. Very rare in 2026 but some legacy MTAs still respond to EHLO with 500 “command not recognized.” RFC-compliant clients try EHLO first; if it fails with 500 or 502, fall back to HELO. Modern client libraries handle this automatically.
Passing invalid EHLO parameter (client identity). The EHLO argument should be the client’s fully qualified domain name (FQDN) or bracketed IP literal. Sending “localhost”, “unknown”, or “[127.0.0.1]” often triggers server-side reputation penalties or outright rejection. Modern senders should always send a real FQDN matching the connecting IP’s reverse DNS.
Client re-EHLO after STARTTLS uses different identity. After STARTTLS, the client must re-issue EHLO. Using a different name than the pre-TLS EHLO is legal but unusual and sometimes triggers server heuristics. Keep the EHLO identity consistent across the pre-TLS and post-TLS sessions.
Interpreting extension keywords case-sensitively. RFC 1869 says keywords are case-insensitive. A client that only matches “STARTTLS” (uppercase) will fail against a server advertising “StartTLS” (mixed case). Compare case-insensitively when parsing EHLO response.
SMTP evolution
  • RFC 821: Original SMTP (obsoleted by RFC 2821, then RFC 5321)
  • RFC 2821: Second-generation SMTP (obsoleted by RFC 5321)
  • RFC 5321: Current SMTP (includes RFC 1869 EHLO mechanism)
Extensions built on RFC 1869
  • RFC 3207: STARTTLS
  • RFC 4954: SMTP AUTH
  • RFC 6152: 8BITMIME
  • RFC 6531: SMTPUTF8
  • RFC 1870: SIZE
  • RFC 2920: PIPELINING
  • RFC 3030: CHUNKING and BINARYMIME
  • RFC 3461: DSN parameters
  • RFC 2034: ENHANCEDSTATUSCODES
SMTPedia companion guides

Frequently asked questions

Should I reference RFC 1869 or RFC 5321 for current SMTP behavior?

RFC 5321. It absorbed RFC 1869 and RFC 2821, and is the current specification. Reference RFC 1869 for historical context (when the extension mechanism was introduced) or when discussing the specific evolution of SMTP extensibility. Modern implementers should target RFC 5321 for compliant behavior.

What happens if a server does not advertise an extension I want to use?

Depends on the extension. STARTTLS, AUTH, 8BITMIME are essential and unsupported servers are legacy. SMTPUTF8, CHUNKING, BINARYMIME are optional and clients should fall back to non-extended behavior. Send code should always check EHLO response for capabilities before attempting to use them; assuming universal support of any extension breaks against real-world legacy servers.

How do I add a new SMTP extension?

Draft an RFC through the IETF Standards Track process. The extension defines: an EHLO keyword (all uppercase, hyphenated), any new commands or parameters, wire format, and error handling. Register the keyword with IANA. Extensions must be backward compatible: clients not requesting the extension continue to work; servers not advertising it fall back to base SMTP. This is by design; the whole point of RFC 1869’s mechanism was extensibility without breaking legacy peers.

Why do some servers respond to EHLO with 500 or 502?

Legacy MTAs from before RFC 1869 (pre-1995) supported only HELO. Their response to unknown commands like EHLO is 500 or 502. Modern RFC-compliant clients try EHLO first; if it fails with 500, 502, or connection reset, retry with HELO. Server rejection with 500 to EHLO is a strong signal that the peer is legacy and may not support any extensions.

Can EHLO be issued more than once in a session?

Yes, and it must be re-issued after STARTTLS per RFC 3207 (post-TLS server capabilities may differ). Multiple EHLO commands are legal; each resets the session state to the point just after EHLO. This is occasionally useful for clients that want to renegotiate parameters mid-session, though rarely done in practice.


About the Author

Alaa - SMTPedia author

Alaa · LinkedIn

Email infrastructure specialist with 8+ years of hands-on experience in SMTP, deliverability, and email verification. I’ve configured and troubleshot mail systems across Postfix, Exchange, and cloud relays, managed IP reputation and warmup campaigns, and built verification pipelines processing millions of addresses. My work spans DNS authentication (SPF, DKIM, DMARC, BIMI), bounce handling, blocklist monitoring, and compliance frameworks including CAN-SPAM and GDPR. I write every article on SMTPedia to give email professionals, developers, and marketers the accurate, RFC-grounded reference they need.


About SMTPedia

SMTPedia is an independent email industry reference covering SMTP, IMAP, POP3, email deliverability, marketing platforms, DNS authentication, and email verification. Every article is researched from official provider documentation, IETF RFCs, and industry best practices. Settings and configurations are verified quarterly.

We are cited as a source by ChatGPT, Microsoft Copilot, and thousands of email professionals worldwide. Learn more about our editorial process.