You sign up somewhere, wait for the confirmation link — and nothing happens. After thirty seconds you start wondering whether something is broken. Usually it is not. Usually the delay is built in.
Reason 1: greylisting
Many mail servers deliberately reject a message from an unknown sender on the first attempt, with an error code meaning "try again later". Only the second attempt is accepted.
The idea behind it is elegant. A proper mail server has a queue and retries after a few minutes. A spam script does not — it works through its list and moves on. Greylisting therefore filters not by content but by persistence.
The price: the first message from a new sender typically arrives one to fifteen minutes late. Every later one is instant, because the sender and recipient combination is then known.
Reason 2: queues on the sending side
When a service sends a thousand confirmation emails at once, they do not all leave simultaneously. They go into a queue and are worked through at a limited rate — partly because too many concurrent connections to the same receiving server look suspicious.
Your confirmation message may therefore have been generated long ago and still be waiting.
Reason 3: how the recipient fetches mail
This depends on how the provider works.
The simple approach is polling: check at fixed intervals whether anything new has arrived. If a service checks every 30 seconds, a message is on average 15 seconds old before it is even noticed — 30 in the worst case.
The better approach is IMAP IDLE. A connection to the mail server stays open and the server announces new mail by itself the moment it arrives. The message is known within a fraction of a second instead of after half an interval.
On top of that there is often a second layer: the web page in your browser also asks periodically whether anything is new. Those two intervals add up.
getSend uses the simple variant. A service on our server connects to the mailbox at random intervals of 15 to 45 seconds and fetches whatever is there. The interface in your browser asks every 3 to 13 seconds whether anything new has arrived. Both intervals are deliberately random so that the requests do not all land at once. On average that puts about 38 seconds between a message reaching the mail server and appearing in your mailbox, and just under a minute in the worst case.
How it accumulates
| Stage | good case | bad case |
|---|---|---|
| Queue at the sender | 1 s | 60 s |
| Greylisting | 0 s | 900 s |
| Fetch at the recipient | < 1 s (IDLE) | half the polling interval |
| Refresh in the browser | < 1 s | half the poll interval |
Greylisting is by far the largest item — and the only one neither sender nor recipient can shortcut in an individual case.
What to do when nothing arrives
- Wait two or three minutes. In most cases it resolves itself.
- Do not hammer "resend". That creates several messages, and some providers invalidate all but the last — so in the end no link works at all.
- Check the spam folder if you are using a normal mailbox.
- Re-read the address. A typo is the most common cause, and nobody gets an error message about it.
- Only then request a new one, ideally after five minutes.
And if it truly never arrives?
Then it is usually one of three things: the sender is on a blocklist, the address does not exist as typed, or a filter discarded the message silently. The last case is the most frustrating, because nobody is told — neither you nor the sender.