What Is Greylisting? Why Your Email Arrived Ten Minutes Late

By the MailboxTemp Editorial Team · Published · Updated

Greylisting is an anti-spam technique in which a receiving mail server temporarily rejects a message from an unfamiliar sender, expecting the sending server to retry a few minutes later. Legitimate mail servers retry automatically; most spam software does not bother. The result is that first messages from a new sender can arrive several minutes late, which is why a verification code sometimes seems to vanish before it appears.

How does greylisting actually work?

The idea is old and simple. When a message arrives, the receiving server looks at three things: the sender's IP address, the envelope sender address (the one used in the SMTP conversation, not necessarily the visible From header), and the recipient address. That combination is called a triplet. If the server has not seen that triplet before, it replies with a temporary rejection — an SMTP 4xx code, usually 450 or 451 — rather than accepting or permanently bouncing the message.

A temporary rejection is a request to try again. Well-behaved mail servers queue the message and retry after a delay. Once the retry arrives, the triplet is now known, the message is accepted, and the sender is added to a local record so future messages skip the delay. Spam tools, by contrast, often fire once and move on; a retry costs them time and resources, so many simply give up.

Two details matter for understanding delays. First, the retry schedule is set by the sending server, not the receiving one. Common mail transfer agents retry after a few minutes and then back off progressively. Second, the record of a known triplet eventually expires — often after a day or a few weeks — so a sender you hear from rarely can be greylisted again on the next contact.

Why is the delay usually minutes, not seconds?

Because the receiving server does not control when the retry comes, greylisting is deliberately imprecise. A sender that retries quickly might get through in a couple of minutes; a sender with a cautious retry policy might take much longer. This variability is normal, and it is one reason greylisting is often combined with other filters rather than used alone.

Why did my verification code arrive late?

If you have just requested a one-time code from a service you have never used before, the first message is exactly the kind of mail greylisting is designed to slow down: a new sender, a new recipient, no history. The sending domain may retry within a few minutes and the code lands fine. But if the code has a short validity window, the delay can be enough to make it useless by the time it appears.

Several things make this worse:

None of this is a fault in your inbox. It is a timing collision between a spam filter and a time-limited message.

What should I do when a code is slow?

First, wait. Give it at least five to ten minutes before assuming failure, and resist the urge to request a new code immediately — that may just create another greylisted message and reset the clock. If the code arrives after it has expired, request a fresh one; by then the sender's triplet is usually known and the second message should pass without delay.

If nothing arrives at all, work through the usual checks:

  1. Confirm the address you typed is exactly right, including any subdomain.
  2. Check whether the service has a resend button and use it once, not repeatedly.
  3. Look at whether the sending domain publishes SPF, DKIM and DMARC records — misconfigured senders are more likely to be filtered heavily. Our guide to SPF, DKIM and DMARC explains what those records do.
  4. If you are using a disposable inbox, check its remaining lifetime before waiting further.

For a fuller checklist, see Verification Email Not Arriving? 10 Things to Check, in Order. If the message is being filtered as spam rather than delayed, Why Verification Emails Go to Spam covers the other common causes.

Greylisting versus other anti-spam filters

Greylisting is one layer in a stack, and it behaves differently from its neighbours. The table below sets out the practical differences.

FilterWhat it doesTypical effect on you
GreylistingTemporarily rejects mail from unknown tripletsFirst message from a new sender is delayed
Content filteringScores the message body, links and attachmentsSpam may be quarantined or marked
Reputation filteringJudges the sending IP and domain historyMail from new or tainted infrastructure is blocked
Authentication checksVerifies SPF, DKIM and DMARC alignmentForged mail is rejected or flagged

Because greylisting only delays, it is one of the gentler filters. It does not read your message content, and it does not permanently reject anything that retries properly. Its weakness is that it penalises slow or one-shot senders, which occasionally includes legitimate application mail.

Does greylisting still work today?

It works, but it is less decisive than it once was. Spam infrastructure has adapted, and many bulk senders now retry like legitimate servers. For that reason, greylisting is usually deployed alongside authentication checks and reputation data rather than as a standalone defence. Whether a particular provider uses it, and with what delays, varies and changes over time — there is no universal schedule to quote.

When a delayed code is more than an annoyance

Greylisting is a plausible explanation for a slow first message, but it is not the only one, and it is not an excuse to cut corners on security. If a code arrives very late, treat it as expired unless the service says otherwise. Do not reuse an old code, and do not forward codes to anyone, including people who claim to be support staff.

If you are receiving codes in a disposable inbox, the timing question is worth thinking about in advance. An inbox that lives for sixty minutes gives you room for a greylisting delay; one that is about to expire does not. Our piece on how long temp mail lasts explains the timers and extensions, and How OTP Verification Works covers the wider mechanics of one-time codes.

Delay is not the same as failure. A greylisted message is usually on its way; a message that never retries is not.

What greylisting means for developers

If you send transactional email — signup confirmations, password resets, one-time codes — greylisting is a design constraint you should plan for. Three practical points stand out.

It also helps to understand what your own receiving side is doing. If you run a mail server and are considering greylisting, note that it will delay first contact from every new sender, including customers and partners. Many operators whitelist known-good senders or apply greylisting only to suspicious connections for that reason.

Sources

The bottom line

Greylisting is a temporary rejection filter: it asks unfamiliar senders to try again later, and most spam does not. That is why a first message from a new sender can lag by several minutes while later messages arrive instantly. If a verification code is slow, wait a few minutes, request a single resend, and make sure the code has not expired before you use it. If you are sending codes yourself, build in proper retries and a lifetime that survives a delay.

Frequently asked questions

Is greylisting the same as a spam block?

No. A block is permanent or long-lasting; greylisting is a temporary rejection that invites the sender to retry. Legitimate mail servers queue the message and try again, usually within minutes, and the message is then accepted. Spam tools often do not retry, which is the point of the filter.

How long does a greylisted email take to arrive?

It depends on the sending server's retry schedule, which the receiving server does not control. Some senders retry within a couple of minutes; others take considerably longer. There is no universal delay, and the behaviour of individual providers changes over time, so treat any specific figure as a rough expectation rather than a rule.

Why did my verification code arrive after it expired?

A short code lifetime can collide with a greylisting delay on the first message from a new sender. Once the sender has retried successfully, its triplet is usually known, so a freshly requested code should pass without the same delay. Request one new code rather than several, and check the expiry window before using it.

Can greylisting stop legitimate email entirely?

Rarely, but it can. A sender configured to attempt delivery only once will drop the message when it receives a temporary rejection instead of queuing a retry. This is why transactional senders should handle 4xx responses properly, and why a code that never arrives may indicate a sender problem rather than a filter.

Should I use a disposable inbox if codes may be delayed?

It can work, provided the inbox will still be alive when the message lands. A sixty-minute inbox leaves room for a typical delay; one that is nearly expired does not. Check the remaining time before you request a code, and avoid requesting repeated codes in quick succession.

Get a free temporary inbox →