Visual RFC.
ALL RFCs / RFC 6647
Read the RFC ↗
RFC 6647 / GREYLISTING

Choose a key from information already available

02

A greylisting key is remembered information about an attempt; it depends on the SMTP phase.

RFC 6647 · § 2EXAMPLE
4 / 4
Choose a key from information already availableA separate post-DATA policy sees a header/body record ending with the SMTP dot terminator. Only then can content analysis contribute to a key, at greater cost.Use only information available at this phaseMessage headersBody content<CRLF>.<CRLF>After terminator: content analysis possibleSeparate policy: receive/store body firstRFC6647 · chapter 2 · state 4 · offline example
04
Read content only after its terminator

A separate post-DATA policy receives headers and body through the terminating dot, then can analyze them; higher cost and changing-content risks remain.

Source for this drawing: RFC 6647 · Read RFC section 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

Do not use message content before the content has arrived.

  • A tuple is an ordered group of values used together as a lookup key. Connection-level policy can use the source IP address, sometimes a corresponding host name; HELO/EHLO policy adds the client’s greeting parameter; MAIL policy can add the envelope return address (§§2.1–2.3). These are separate possible policies, not a requirement to apply every gate.
  • At RCPT, recipient information is available. Section5 recommends the tuple (IP address, RFC5321.MailFrom, first RFC5321.RcptTo). MailFrom is the envelope return path, not the visible From header; RcptTo is an envelope recipient, not the visible To header. The example preserves spelling and uses the first recipient, without claiming that all implementations use this key (§§2.4,5 item1).
  • DATA-level checks can occur on receipt of DATA, after the complete envelope, or after the terminating dot, when the message has been transferred. Header fields, subject, a digest of content and body analysis are possible only at the latter point (§2.5). A digest is a summary used for comparison here, not a proof of who sent mail.
  • Post-DATA content processing costs more because the body has to be received and temporarily stored. Content can also change between retries, yielding a different key. Section2.6 describes additional reputation/dynamic-address heuristics; these are possible targeting inputs, not guaranteed abuse verdicts (§§2.5–2.6,3,4.1).
  • Connection-stage unknown-source handling may use421 and close, or other4yz replies to subsequent commands; later described policies defer for the remainder of the session. The guide shows one gate at a time and omits routine SMTP commands and unrelated errors (§§2.1–2.5).
DETAILS

Fictional offline IPv4 mail examples. This is an applicability statement, not a new SMTP extension or a complete mail server. Timings and decisions in the drawing select one recommended policy; passing this gate is not message acceptance, delivery or proof of a trustworthy sender. No mail is sent.

Read the RFC section ↗

All chapters in RFC 6647

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 ↗