Greylisting explained

Greylisting is an anti-spam technique: a receiving mail server answers a sender it does not know yet with a temporary 4xx reply and accepts the same message when it comes back later. It works because a lot of spam software never retries, while a real mail server keeps the message in its queue and tries again. For a legitimate sender the cost is a delay, not a lost message, as long as the sending system queues and retries. For address verification, a greylisting reply means "ask again later": it says nothing about whether the mailbox exists.

What greylisting is

The IETF describes the practice in RFC 6647, Email Greylisting: An Applicability Statement for SMTP (June 2012). In the broad sense, greylisting is any reduced service for an unknown or suspect source for a limited time, which the RFC says is typically minutes or a few hours. In the narrow sense, which is how most people use the word, it is an SMTP temporary failure reply sent to such a source.

RFC 6647, section 1.1, gives two reasons it works:

The RFC is also clear about what greylisting is not: not every temporary failure is greylisting. A sender has no way to know why a server deferred it (section 3), which is exactly why every 4xx reply must be handled the same way: queue and retry.

The triplet

A greylisting server remembers who has tried to send to it. RFC 6647, section 2, lists where in the SMTP session it can decide: at the connection, at HELO/EHLO, at MAIL, at RCPT, or at DATA.

The classic design is the triplet. RFC 6647, section 5, recommends keying the record on three values:

  1. the IP address of the sending server,
  2. the envelope sender (the address in MAIL FROM, also called the return path),
  3. the first envelope recipient (the first RCPT TO).

The first recipient is enough because, as the RFC notes, legitimate servers do not appear to reorder recipients between retries. After one successful retry, the RFC recommends accepting all further traffic from that IP address, whatever the envelope says.

The timing the RFC recommends

SettingRFC 6647, section 5
Window in which a retry countsConfigurable; the default should be from 1 minute to 24 hours
Retry after the window closesTreated as a new message: the first-seen time resets
How long a known IP stays knownRecords with no recent traffic expire; the default should be at least one week
Grouping of sending IPsA server may track whole blocks, such as a /24, instead of single IPv4 addresses
Several inbound MX serversThey should share one greylisting database and policy
Authenticated submissionShould not be greylisted

Some sites raise the low end of the window to match common retry intervals, but the RFC sees little benefit in doing so. Section 2.1 gives 30 minutes as an example of a minimum age before a new source is accepted.

How greylisting looks to a sender

RFC 6647, section 5, makes no specific recommendation for the reply code. Under SMTP rules, it says, the only two reasonable choices are 421 if the server wants to close the connection, and 450 otherwise. In practice, codes and texts vary by software, and the text may say "greylisted" or simply ask you to try again later. An illustrative exchange:

S: 220 mx.example.net ESMTP
C: EHLO mail.example.com
S: 250 mx.example.net
C: MAIL FROM:<bounces@example.com>
S: 250 2.1.0 Sender OK
C: RCPT TO:<pat@example.net>
S: 450 4.7.1 <pat@example.net>: Greylisted, please try again later
C: QUIT
S: 221 2.0.0 Bye

Our bounce code dictionary explains a typical greylisting reply, 451 4.7.1. Some deferrals look similar but have other causes, and waiting alone does not fix them:

A simple test: greylisting accepts the first retry that arrives inside its window, so a correctly configured sender gets through on its next attempt. A deferral that repeats for hours or days is something else. Read the text after the code.

Queue and retry: what RFC 5321 asks

RFC 5321, the SMTP standard, already requires the behavior that greylisting relies on. Section 4.2.1 defines a 4yz reply as transient: the action did not happen, but it may succeed if repeated, and the client should try again. Section 4.5.4.1 sets the sending strategy:

A retry after 30 minutes falls well inside the default window of RFC 6647, so a standards-following server gets through on its second attempt. The price is that delay. RFC 6647, section 3, notes that some popular mail servers wait an hour or more before retrying, which matters for time-critical mail such as sign-in codes.

Never treat a 4xx as a bounce

RFC 6647, section 4.2, describes a failure of some SMTP implementations: treating every error as final. The message then returns to the sender as undeliverable, and the address may be removed from a mailing list for no reason. M3AAWG makes the same point in its Sender Best Common Practices (version 3.0, February 2015, section 3.8): senders must not treat temporary failures as permanent, because some receivers temporarily refuse a first message to see whether the sender follows the RFCs.

In practice:

Shared IP pools and changing envelopes

The triplet assumes that a retry looks like the first attempt. RFC 6647, section 4.1, lists the cases where it does not:

Section 4.2 adds one that matters for bounce handling: some senders encode message-specific details in the MAIL FROM address. If that address changes between retries, the server may treat each retry as a new delivery, and the message is never delivered. Per-recipient return paths (VERP) are fine; just keep the return path of a given message identical on every retry.

Repeated greylisting can mean long delays, out-of-order delivery, or a message returned after the give-up time. What helps:

What greylisting means for address verification

Verification asks the recipient's mail server about a mailbox without sending a message (see how verification works without sending). RFC 6647, section 4.2, notes that greylisting interferes with exactly this kind of session, whether it comes from a legitimate application or from a spammer harvesting addresses.

When a server defers the check, there is no reliable answer yet. Our result is then unknown with the reason greylisted and the action retry_later. What to do:

Be realistic about the limit: some servers keep deferring unfamiliar clients, and some answers stay unknown. For those, a confirmation email (double opt-in) settles the question.

Questions

How long does greylisting delay a message?

Usually one retry interval. RFC 6647's default window starts 1 minute after the first attempt, so the delay depends mostly on how long the sending server waits. With the 30-minute interval RFC 5321 suggests, expect about half an hour.

Is a greylisted message a soft bounce?

No. The message is still in the sender's queue and will be retried. It becomes a failure only if every retry fails until the give-up time.

Can I stop being greylisted?

Not on your own. RFC 6647, section 2.7, expects well-behaved senders to be added to the exception list after their first proper retry. Retry correctly, from a stable IP, with a stable envelope.

Try it

Check an address in the free email checker; if the result is unknown with the reason greylisted, check it again later.

Sources

How we wrote this: drafted by the email-validation.org team with the help of AI writing tools, from our product documentation and the sources linked in the text.

Get up to 500 free credits. No card needed.

New accounts get 500 free credits (100 when you sign up with a free email provider such as Gmail, Outlook or Yahoo, or another personal mailbox such as a paid one like Fastmail or one from your internet provider). Try it on your own list before you buy.

Updated · Maintained by the email-validation.org team