Deliverability
8 min read
My email isn't arriving. How do I find out why?
“Email isn't arriving” is four different problems with four different fixes. Twenty minutes in the right order tells you which one you have.
Short answer
Establish which of four things happened before changing anything: the message was never sent, it was rejected outright (you get a bounce), it was accepted and filed as spam, or it was accepted and silently dropped. A bounce message tells you it was rejected and usually why. No bounce and no inbox copy means it was accepted and filtered — a different problem, fixed in a different place.
Start here
A message was sent and the recipient says it never arrived
Did you receive a bounce message?
It was rejected, and you were told why
The receiving server refused it. The bounce contains a code and a reason in plain text. This is the good case: the failure is explicit and the text names the cause.
Read the bounce first — the answer is usually literally in it
It was accepted, then filtered or dropped
The receiving server took the message and decided not to show it. Nothing was refused, so nothing was reported. Check spam folders before assuming anything is broken.
Harder to diagnose, and rarely a configuration fault on your side
Four different problems that look identical
From where you are standing, all four look the same: you sent something, and it is not there. They have almost nothing else in common, and the single most useful thing you can do is find out which one you have before you start changing settings.
- Never sent. The message is sitting in an outbox, a draft, or a queue. More common than anyone admits, and the fastest to rule out.
- Rejected. The receiving server refused it and told your server why. You get a bounce message. The reason is in the bounce.
- Accepted and filtered. The receiving server took the message and put it in spam or a category tab. Nothing failed, so nothing was reported to you.
- Accepted and dropped. The receiving server took the message and discarded it without telling anyone. Rare, and mostly done by systems under attack or with aggressive rules.
A bounce is good news. It means the failure is explicit, the reason is written down, and you are not guessing. The hard cases are the silent ones.
The order to check things in
This order is deliberate. Each step is cheaper than the one after it, and each one eliminates a whole class of cause — so you never spend an afternoon on authentication for a message that was never sent.
- 1
Confirm it left your side
Look in Sent. If it is not there, it was never sent, and nothing downstream matters. If your mail app shows an outbox or a queue, check that too.
- 2
Look for a bounce
Check your own inbox and your own spam folder — bounce messages are themselves frequently filtered, which is a genuinely maddening failure mode. If a bounce exists, skip to reading it; you are done diagnosing.
- 3
Have the recipient search their whole mailbox
Not just spam: search for your address across all folders and tabs. Corporate systems quarantine mail into places users never look, and a message sitting in a quarantine is not a delivery problem.
- 4
Send a test to an address you control at a different provider
A personal account somewhere else. If that arrives normally, your sending is working and the problem is specific to the recipient's system — which changes who has to fix it.
- 5
Check your authentication records
Only now. If SPF, DKIM or DMARC are broken, mail from your domain is treated with suspicion everywhere, so the symptom would be widespread rather than one recipient.
- 6
Check whether the address is suppressed
If a previous message to that address bounced permanently, a well-behaved sending system stops trying — deliberately, to protect your reputation. That looks like silence and it is not a fault.
How to read a bounce message
Bounces look like machine output because they are, but the important part is short and in plain language. Two things matter: whether the failure is permanent or temporary, and the sentence the receiving server wrote.
Permanent — stop sending
Codes beginning 5, e.g. 550
- “No such user” — the address does not exist. Fix the spelling or remove it. (advantage)
- “Domain not found” — the whole domain is wrong or expired. (advantage)
- “Blocked” or “rejected for policy” — reputation or content. This one needs real work. (drawback)
- Retrying a permanent failure is what damages a sending reputation most (drawback)
Temporary — it will retry itself
Codes beginning 4, e.g. 451
- “Mailbox full” — nothing you can do; their problem, and it may clear. (advantage)
- “Try again later” or greylisting — normal, resolves on retry. (advantage)
- Your server retries automatically for hours or days (advantage)
- If it persists past a day or two, treat it as permanent (drawback)
The distinction matters beyond this one message. Sending repeatedly to an address that permanently failed is one of the strongest negative signals a receiving system tracks — it is what a list bought from a broker looks like. That is why a good sending system records a permanent failure and stops trying, and why finding an address on a suppression list is a feature protecting you rather than an error.
When it arrives, but in spam
This is the most common version of the problem and the most misdiagnosed, because people go straight to their DNS records. Authentication is necessary — mail that fails it lands in spam almost everywhere — but once the three records are correct, further changes to them do nothing at all.
What decides the rest is reputation, and reputation is mostly about the domain's history rather than any setting.
- A new domain has no history. A domain that has never sent mail is an unknown quantity, and unknown senders get more scrutiny. This resolves over weeks of ordinary sending, and cannot be resolved faster by configuration.
- Volume that appears suddenly. Ten messages a day for a month, then two thousand on a Tuesday, is the exact shape of a compromised account. Increase gradually.
- Recipients who do not engage. Mail that is never opened, never replied to, and sometimes marked as spam teaches the receiving system what to do with the next one.
- Content patterns. A single link, no plain-text alternative, an attachment, and urgent language together resemble the thing filters are built to catch — even when every one of them is innocent.
When it is genuinely not your problem
Some failures are not fixable from your side, and recognising them saves days. It is worth being honest about them rather than continuing to adjust records that were already correct.
- The recipient's employer runs a strict gateway that quarantines mail from domains it has not seen before. Only their IT team can release it or add an allowlist entry.
- The recipient's mailbox is full, or their account is suspended.
- The recipient's own domain has expired or its DNS is misconfigured, so nothing can reach them from anywhere.
- A shared spam-filtering service has your sending network on a list. Reputable providers monitor and dispute these, but the resolution is not on your schedule.
In each case the useful move is to reach the person another way and tell them what is happening — a phone call, a message on another channel — rather than sending the same email four more times. Repeated attempts to a system that is refusing you make the underlying reputation problem worse, not better.
What to gather before you ask anyone for help
Whether you are contacting your own provider or the recipient's IT team, the same five facts turn a conversation that takes a week into one that takes an hour. They are all things only you can supply.
Record 1
Evidence- Message IDalso called “from the original message headers”
- <[email protected]>
- Exact time sentalso called “with the time zone”
- 2026-08-16 14:32 +03:00
- Sender and recipient
- [email protected] → [email protected]
- Bounce text, in fullalso called “if there was one”
- the whole message, not a summary
- Scope
- one recipient, one domain, or everyone
The message ID is in the original message's headers — most mail apps expose it under “show original” or “view source”. It is the only value that lets a receiving system find your specific message in its logs.
The last row is the one people leave out and the one that most changes the answer. “It is not arriving” and “it is not arriving for anyone at this one company” are different reports leading to different investigations, and only you can tell which you have.
What to remember
- Find out which of four things happened — never sent, rejected, filtered, or silently dropped — before you change any setting.
- A bounce message is good news: the failure is explicit and the reason is written in it.
- Permanent failures start with 5 and mean stop. Temporary ones start with 4 and retry themselves.
- One recipient affected points at their system. Everyone affected points at your domain's authentication or reputation.
- Once SPF, DKIM and DMARC are correct, further changes to them do nothing. What is left is reputation, and reputation is built by ordinary sending over time.
Questions people ask next
How long should I wait before assuming an email is lost?
Most mail arrives in seconds. If it is not there after fifteen minutes something has happened, though temporary failures retry for hours and greylisting routinely delays a first message by ten to thirty minutes. If there is no bounce and nothing has arrived after an hour, start diagnosing.
Why do my emails go to spam when my SPF, DKIM and DMARC all pass?
Because authentication proves who sent a message, not that anyone wants it. Once the three records are correct they contribute nothing further, and what remains is reputation: the domain's sending history, how recipients react, and whether volume patterns look ordinary. New domains almost always start with some filtering and improve over weeks.
What does a 550 error mean?
A permanent rejection — the receiving server will not accept this message and will not accept a retry. The accompanying text says why: an address that does not exist, a domain that cannot be found, or a policy block. The first two are fixed by correcting the address; the third is a reputation problem.
I got no bounce and the recipient has nothing. What happened?
The message was accepted and then filed somewhere the recipient has not looked, or discarded silently. Have them search their entire mailbox for your address rather than checking folders one at a time, and ask whether their organisation runs a quarantine they do not see by default.
Does sending the same message again help?
Rarely, and it can hurt. If the first was rejected permanently, the second will be too, and repeated attempts to an address that refuses you are a strong negative reputation signal. If it was filtered, an identical duplicate reinforces the pattern that got it filtered.
Why is one of my addresses on a suppression list?
Because mail to it previously failed permanently or the recipient reported it as spam. Continuing to send to such an address is the clearest signal of a poor-quality list, so a good system stops automatically. Removing it is possible when you know the address is now valid, but do it deliberately rather than as a reflex.
My mail arrives for some people and not others. What does that tell me?
That your sending is fundamentally working and the difference lies with the receiving systems. Group the failures by recipient domain — if they are all at one employer or one provider, the cause is that system's policy, and the fix usually involves their administrator rather than your DNS.
Read next
Last reviewed 2026-08-16 · Brand My Inbox current