We open millions of live SMTP conversations to verify email addresses, and greylisting is one of the most common reasons a server gives us a deliberately unhelpful answer the first time we knock. It is not an error, and it is not the server rejecting the address. It is a stalling tactic with a clever purpose, and it explains both why some good mail arrives late and why a careless tool mislabels a perfectly real address.
How greylisting works
Greylisting lives on the receiving mail server, and it rests on a single assumption: properly behaved mail servers retry, and a lot of spam software does not. When a message arrives, the receiver looks at a triplet of facts: the sending server’s IP address, the envelope sender, and the envelope recipient. If it has never seen that exact combination before, it does not accept the message. Instead it replies with a temporary 4xx deferral, the SMTPequivalent of “try again later.”
A legitimate sending server treats that response exactly as the standard says it should. It keeps the message in its queue and retries after a configured interval, often a few minutes. On that second attempt the triplet is already on record, so the receiver accepts the message and typically allowlists the sender for a window of hours or days. From then on, mail from that sender flows straight through without the wait.
The retry window
The deferral is intentionally temporary, never permanent. A 4xxcode tells the sender “this failed, but it is worth trying again,” unlike a permanent 5xx that says “stop, this will never work.” The delay is simply the gap before the sending server’s next retry, which is why two senders hitting the same server can experience very different waits.
Why greylisting reduces spam
The technique is effective out of all proportion to how simple it is. It needs no message content scanning and no reputation lookups; it only leans on that one behavioral split between compliant servers and disposable spam tools. High-volume spam is usually sent from software optimized to fire each message once and move on, so a large slice of low-effort spam never returns for the retry, and never gets in.
There is a second benefit hiding in the delay. A brand-new spam source is often unknown to blocklists for the first few minutes of its life, so forcing a wait before acceptance gives reputation services time to catch up. A sender that looked anonymous on the first attempt may already be flagged by the time it retries.
Why greylisting can delay legitimate mail
The cost of that filtering is paid by legitimate senders, as a delay on the very first message to each recipient. Most of the time it is harmless: a newsletter or a reply that lands a few minutes late is rarely noticed. The pain concentrates in transactional mail, where timing is the whole point. A password reset, a one-time login code, or an order confirmation held for fifteen minutes can read to the recipient as a broken product, even though the mail is on its way.
Greylisting also interacts awkwardly with large senders. An operator that delivers from a pool of outbound IP addresses may retry from a different IP than the one that was deferred, which changes the triplet and can restart the clock. And because a deferral is a temporary failure, it shows up in your logs as a soft bounce on the first attempt, easy to misread as a delivery problem rather than the self-clearing speed bump it usually is.
How greylisting affects verification, and what we do
Real-time verification runs into greylisting head-on, because a verification probe opens an SMTP conversation that looks, to the receiver, just like a brand-new sender. So a greylisting server can defer the probe with the same temporary 4xxit gives anyone it has not seen before. In that instant the address is neither confirmed valid nor proven invalid; it is simply unknown, because the server has withheld its answer. A naive validator reports that ambiguity and labels the address “unknown,” a result that describes the greylist, not the mailbox.
We do not think a stalling tactic should count as a verdict, so our engine recognizes the deferral rather than taking the 4xxat face value. It honors the server’s retry expectation with a measured re-probe, the same way a legitimate sender would, so the second attempt clears the greylist and elicits a real answer. When a definitive response still is not safe to force, the result is scored with confidence instead of dropped as a shrug, so you always know whether an address carries a clean signal or a degraded one.
- Greylisting detection is part of the same engine behind the free email checker and the paid API, so you get the resolved result, not a raw deferral.
- To watch a deferral happen live, open a handshake with the SMTP test and read the exact response code the server returns.
- To tell a self-clearing greylist apart from a genuine delivery failure in your own sends, inspect the raw codes with the bounce checker.
Handled properly, greylisting is a non-event for verification: a short, expected pause that resolves into a real answer instead of a false “unknown.” For teams verifying at scale, where a probe retried correctly is the difference between a usable list and a pile of shrugs, the volume tiers are on the pricing page.