Visual RFC.
ALL RFCs / RFC 2033
Read the RFC ↗
RFC 2033 / LOCAL MAIL TRANSFER

Greet with LHLO and check the envelope

02

LHLO replaces the SMTP greetings. A recipient enters this transaction’s successful set only after its RCPT command receives a 2xx positive completion.

RFC 2033 · § 4.1EXAMPLE
4 / 4
Greet with LHLO and check the envelopeFour separate greeting and envelope cases. After greeting, LHLO from queue manager to delivery agent obtains extension capabilities; PIPELINING and ENHANCEDSTATUSCODES are required server implementations,8BITMIMErecommended. A separate EHLO misconfiguration receives chosen500and no positive completion. A separate DATA with zero successful RCPT receives mandatory503and no content. In a successful separate transaction MAIL250then RCPT250then DATA354permits content, not final delivery acceptance.Check the protocol and accepted envelopeQueue managerDelivery agentMAIL → 250RCPT Ana → 250DATA → 354content + final dot lineStill await final recipient results
04
An accepted RCPT opens the DATA path.

Separate valid transaction after LHLO: MAIL is accepted, RCPT for Ana gets 250, then DATA gets 354. Only now may content and the final dot line follow; final delivery responsibility has not yet transferred.

Source for this drawing: RFC 2033 · Read RFC section 4.1 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

The envelope and the letter do different jobs.

Mail transport moves a message between servers. The message format describes its contents. Authentication adds checks; it does not make every message safe.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

An accepted recipient command permits DATA; it is not final message acceptance.

  • LHLO has EHLO semantics, but HELO and EHLO are absent from LMTP. A server MUST NOT return a positive completion to either; 500 is recommended.
  • If no RCPT command has succeeded in the transaction, DATA MUST fail with 503. A successful RCPT has a reply code beginning with 2.
  • A server MUST implement PIPELINING and ENHANCEDSTATUSCODES, and SHOULD implement 8BITMIME. The examples show command/reply roles; they are not complete pipelining or enhanced-status transcripts.
DETAILS

The rejected greeting and empty-envelope DATA examples are separate cases, not commands sent after a valid LHLO in the same conversation. In the successful branch, MAIL and RCPT precede DATA;354 permits content, while final recipient results follow the terminating dot line.

Read the RFC section ↗

All chapters in RFC 2033

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗