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

Defer an unfamiliar sender, then recognize a retry

01

Greylisting uses an ordinary temporary SMTP failure to ask an unfamiliar sending server to try later.

RFC 6647 · § 1.1EXAMPLE
4 / 4
Defer an unfamiliar sender, then recognize a retryThe later retry uses the same chosen key and satisfies the greylisting gate. A check marks permission to continue SMTP, not final acceptance or delivery.Temporary SMTP failure is not final acceptanceSending MTAReceiving MTASame tuple: retry at thirty minutesPass this gateContinue ordinary SMTP processingOther filters and final outcome still applyRFC6647 · chapter 1 · state 4 · offline example
04
Pass only this gate

The same selected key retries after thirty minutes. Greylisting now permits further processing; no final acceptance or safe-mail verdict is claimed.

Source for this drawing: RFC 6647 · Read RFC section 1.1 ↗

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

A retry can pass one policy gate without proving that the message is safe or delivered.

  • SMTP, the Simple Mail Transfer Protocol, moves mail between servers. An MTA is a Mail Transfer Agent: the sending MTA queues mail and the receiving MTA decides whether to accept it. Greylisting temporarily degrades service for unknown or suspect sources; it is not the name for every temporary SMTP error (§§1–1.2).
  • The narrow technique returns a transient 4yz reply, where yz are the last two digits. A fully capable SMTP sender needs retry behavior; some simplistic spamware does not retry. A reply alone cannot tell the sender whether the cause was greylisting or an ordinary resource problem (§§1.1,3; RFC5321 §§4.2.1,4.5.4.1).
  • The chosen RCPT-stage example uses 450 and stops before DATA: the receiver records the first attempt, sends the temporary reply back to the sender, and the sender retains the message in its outgoing queue. The sender later makes another attempt, rather than treating 4yz as a permanent 5yz failure (§§2.4,4.2,5). RFC5321 §4.5.4.1 requires queuing and periodic retry (MUST), a delay after failure (MUST), and configurable retry parameters (MUST); in general the interval SHOULD be at least thirty minutes. The first chapter selects thirty minutes, while the later five-minute calculation tests only the receiving policy window, not a recommended sender schedule.
  • After a qualifying retry, the selected policy permits further SMTP processing. This is not the final positive reply after DATA, not delivery into a mailbox, and not authentication. Other filters and SMTP outcomes still apply. A spam sender that retries can also pass (§§4.3,5).
  • RFC6647 does not specify a new EHLO capability or a Greylist header. Section5 gives no specific code/text recommendation, while explaining that 421 reasonably terminates the connection and 450 reasonably continues it. The 450 example is not mandatory; the separate connection-level example uses421 (§§2.1,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 ↗