Visual RFC.
ALL RFCs / RFC 3207
Read the RFC ↗
RFC 3207 / SMTP STARTTLS

Reset SMTP knowledge and discover capabilities again

03

Completing TLS resets SMTP to the state just after the original greeting. Old plaintext observations must not silently become trusted TLS-session facts.

RFC 3207 · § 4.2EXAMPLE
4 / 4
Reset SMTP knowledge and discover capabilities againFour reset states retain TLS-derived information but discard old SMTP knowledge at handshake completion. Client clears preTLS STARTTLS,SIZE100000,8BITMIME and server clears old client.example EHLO. Client follows SHOULD and sends new EHLO inside TLS without waiting for another greeting. Chosen postTLS list SIZE200000,DSN differs from earlier and omits STARTTLS as required. With acceptable TLS result and fresh SMTP state, MAIL begins; a second STARTTLS attempt stops because TLS is already active. Numbers and capability differences are fictional choices.Rebuild SMTP knowledge inside TLSSMTP clientSMTP serverMAIL inside accepted TLS sessionMAIL FROM:<a@example.com>second STARTTLSMUST NOT restart TLS while TLS is active
04
Start mail under the new session state.

With an acceptable TLS result and the fresh EHLO reply, the client begins MAIL FROM:<a@example.com>. A second STARTTLS attempt is prohibited while TLS is active.

Source for this drawing: RFC 3207 · Read RFC section 4.2 ↗

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

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

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

Discard old SMTP knowledge before rebuilding it inside TLS.

  • The server MUST discard knowledge from the client that did not come from TLS, such as the earlier EHLO argument. The client MUST discard earlier server knowledge, such as the extension list.
  • The client SHOULD send EHLO first after successful TLS negotiation. The new extension list MAY differ from the earlier list; do not assume an extension survived.
  • Both parties MUST know whether TLS is active. The client MUST NOT start another TLS session when one is active, and the server MUST NOT advertise STARTTLS after the handshake.
DETAILS

This chosen ESMTP path follows the EHLO recommendation, then starts a fresh mail transaction only after the TLS result is acceptable. Reset means the state after a greeting; the example does not wait for a second SMTP greeting. SIZE numbers and capability changes are illustrative, not required server defaults.

Read the RFC section ↗

All chapters in RFC 3207

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 ↗