Guides
Why cold emails land in spam: causes, diagnosis and what EmailPal does when a domain is hit
Cold email lands in spam for ten repeatable reasons: authentication, no reputation, too much volume per inbox, a dirty list, complaints, copy, targeting, blocklists, provider rules and send patterns. This guide ranks them, shows how to diagnose each, and explains EmailPal's automatic response when a domain is hit: warnings, holds, throttles, rest, ramp and replace.
Last reviewed: October 27, 2026.
The short answer
Work the causes in order and stop at the first one that is broken: authentication, then reputation, then volume, then the list, then complaints, then copy. Fix infrastructure before words. When a domain is hit, EmailPal does the cautious things automatically: it warns at 3% rejected mail, pauses campaigns and mailboxes at 5%, cuts a hit domain to a quarter of its volume, and if Gmail refuses a domain outright it rests it for 7 days, restarts it at 2 emails a day and replaces it after two failed restarts. No tool guarantees inbox placement.
Part 1: Why cold email lands in spam
| # | Cause | What it looks like | Fix |
|---|---|---|---|
| 1 | Authentication | Spam or outright rejection at every provider. Gmail rejects mail that fails reverse DNS, SPF, TLS, DKIM or DMARC checks | One SPF record, two valid DKIM keys, DMARC present, MX correct. EmailPal writes and re-verifies all of them on domains it hosts |
| 2 | No reputation | A mailbox created this week lands in spam from the first send | Warm for at least 14 days, or lease pre-warmed inboxes |
| 3 | Too much volume per inbox | Fine at 15 a day, junk at 50 to 100. Providers cluster senders that suddenly look like a list | 15 cold emails per inbox per day. Hard cap 100. Add inboxes, not volume |
| 4 | A dirty list | Bounce rate above 3%. Catch-alls, disabled and full mailboxes | Verify first. Keep bad addresses under 2% |
| 5 | Complaints | Placement drops a few days after launch. Replies say "stop emailing me" | Google's guidance is to stay under 0.10% spam rate and never reach 0.30%. Tighten targeting, make unsubscribing easy |
| 6 | Copy | One template, three links, HTML, a tracking pixel, urgency words | Plain text, one link at most, no open tracking. See the word list in the setup guide |
| 7 | Targeting | The right infrastructure but the wrong people. Complaints are high and replies low | Narrow the list to people who plausibly want the offer. Mailing 1 to 2 people per company outperforms 10 or more |
| 8 | Blocklists and shared reputation | Listed on Spamhaus or similar, or a neighbour on a shared IP ruined the range | Isolated IP pools. A burned domain is retired, not repaired |
| 9 | Provider rules | Inbox at Gmail, spam at Outlook. Microsoft is harsher on new domains | Slow down, keep warming on, and do not chase Outlook with more volume. EmailPal never sends campaign mail to personal Microsoft mailboxes (outlook, hotmail, live, msn) |
| 10 | Send patterns | Every inbox on a domain sends identical copy in the same minute | Vary variants and schedule windows. Do not rotate the From name daily, which looks like evasion |
Two myths cost people weeks. Unique content does not buy inbox placement. No published 2024 to 2026 controlled test shows per-recipient uniqueness improving placement at Gmail or Microsoft, and spintax is a content technique, not a deliverability fix. A new IP does not fix a burned domain. The domain carries the reputation.
Personalization helps indirectly, through more replies and fewer complaints, and only when it is true. A fabricated reference is a complaint risk.
Part 2: How to diagnose it
Change one variable at a time, and take measurements before changing anything.
Step 1. Stop adding volume. More mail into spam trains spam. Pause the affected campaign, not the whole account.
Step 2. Check the state of the sender. On the mailbox and domain pages, look for:
- Sending paused on a mailbox: a mailbox hold (see Part 3).
- Resting, Ramping X of Y a day or Replace on a domain: a domain recovery (see Part 3).
- Slow-Ramp or blocked on warming: placement collapsed, or authentication or credentials failed.
- A notice naming the domains an account throttle is limiting.
Step 3. Check authentication on public DNS, not the registrar screen:
``bash dig +short TXT example.com dig +short TXT <selector>._domainkey.example.com dig +short TXT _dmarc.example.com ``
You need exactly one SPF record, a DKIM key that validates, and a DMARC policy. Copy the DKIM selector names from the domain's DNS records in EmailPal. DNS verification failed, DKIM not validating.
Step 4. Read the bounce numbers. Two different things get called a bounce: a *bad address* (the list's fault) and a *refusal by the receiver* (the domain's fault, as in "very low reputation of the sending domain"). A mailbox with a high share of the first needs a verified list. A high share of the second needs rest and smaller volume. Why is my mailbox on hold?.
Step 5. Split by provider. Is it everywhere or one provider?
| Pattern | Likely cause |
|---|---|
| Spam everywhere | Authentication, a dirty list, copy or complaints |
| Gmail only | A reputation verdict on the domain. Gmail can refuse a domain outright |
| Outlook or Yahoo only | Provider strictness on a new domain. Reduce volume and keep warming on |
| Only mailboxes created recently | No reputation yet. Warm longer |
Step 6. Test placement with seeds and people. Send the same message from the same mailbox to your own Gmail, Outlook and Yahoo accounts, then check where it lands. Use Google Postmaster Tools on a domain with enough Gmail volume. Treat human replies as ground truth. Open rates are inflated by security scanners, so they say nothing about placement.
Step 7. Compare with the warming inbox rate. Warming mail is measured against real inboxes at Gmail, Outlook and Yahoo. If the warming inbox rate is healthy and campaign mail lands in spam, the cause is the list, the copy or complaints, not the domain's basics. If both fall, look at authentication and volume.
Step 8. Strip the message. Plain text, one link at most, no tracking, a working unsubscribe, no urgency words. Send it from a mailbox known to inbox.
Part 3: What EmailPal does automatically when a domain is hit
EmailPal measures the receiving servers' final answers and acts in layers, smallest first. Only cold campaign mail counts toward these numbers. Warming mail never does.
| Layer | Trigger | What happens |
|---|---|---|
| Warning | 3% of a mailbox's recent cold mail rejected | An email names the number and the likely cause while mail is still flowing |
| Campaign pause | Hard bounces reach 5% (adjustable 0.5% to 5%) after at least 200 sends | That campaign pauses. Leads keep their place. Other campaigns continue |
| Mailbox hold | Over a rolling 7 days, 5% rejected at 100 or more outcomes, or at least 3 rejections and 10% under 100 | That mailbox's cold sending stops. New cold mail is refused with a 550, queued cold mail is cancelled and warming keeps running. You resume it, and it cannot be re-held for 7 days |
| Domain throttle | A domain's own 48-hour rejection rate reaches 5% with at least 3 rejections | That domain's mailboxes are cut to a quarter of their volume. Your other domains are unaffected. The domain returns to normal after 72 hours once its rate is back under 5% |
| Account throttle | The account's 48-hour rate reaches 5% (200 completed outcomes or 8 rejections), spread across domains | The whole account drops to a quarter of normal volume and a person is told |
| Gmail domain breaker | Checked every 15 minutes. In 24 hours, Gmail refused at least 10 messages from one domain and at least 50% of what Gmail ruled on | Every cold mailbox on that domain is held, queued cold mail is cancelled and you are notified. Recovery starts, as below |
| Account risk level | A risk score built from first-send bounce rate, complaint rate, spam traps and abuse reports | Watch, then no new mailboxes, then throttled to a quarter, then suspended. Automatic suspension never rests on a score alone. It takes a spam-trap hit, a complaint rate far over the line or a repeat offender |
| IP and provider holds | One provider refuses or defers one sending IP | That IP is held for that provider only and the others in the pool take its share. Spamhaus listings are checked every 2 minutes. You usually see nothing |
Refusals of EmailPal's own network are not charged to you. If a receiver blocks EmailPal's IP or range instead of judging your list, the message ends as Not reached. It does not count as a bounce, does not count toward a hold, the lead pauses and you can resume it to resend.
The domain recovery path: rest, ramp, replace
When Gmail refuses a domain, there is no guessing and no waiting for support. The domain follows one path and shows one word for where it is:
| Stage | What it means | Numbers |
|---|---|---|
| Delivering | Normal | Your usual limit, 15 a day recommended |
| Resting | Cold sending stopped | 7 days after the first trip, 14 days after any later trip. You cannot resume early |
| Ramping X of Y a day | Slow restart | 2 cold emails a day per mailbox on day one, plus 2 each day. A 15 a day limit is reached on the eighth day. The domain is closed out after 3 clean days at the full limit |
| Replace | The domain failed two restarts (the third trip) | Claim or register a new domain. Warming is paused |
While a domain rests or ramps, warming is cut to a trickle of 4 messages a day per mailbox, not switched off. That keeps a heartbeat on the mailbox without adding volume while a receiver is refusing the domain. Warming mail is not counted as evidence of recovery, so a good warming score never restarts a domain early. Google's own advice is to cut volume until errors fall and then restart small, which is what this path does.
Part 4: What to do in each state
| State | Do this |
|---|---|
| Warning email (3%) | Verify the list and remove the bounced addresses before the 5% line is reached |
| Campaign paused | Remove bounced addresses, verify the rest, then resume. Resume re-runs the launch checks |
| Mailbox held | Clean the list, then use Resume sending on the mailbox. Resend the cancelled mail afterwards |
| Domain throttled | Wait for the 72 hours, keep warming on, and use the other domains in the meantime |
| Domain resting | Do nothing to force it. Review the list and copy that caused it, and do not send the same list from other domains |
| Domain ramping | Leave it alone. Do not raise limits. Each trip while ramping counts as a failed restart |
| Domain on Replace | Register a new domain or claim pre-warmed inventory. Fix the cause first or the new domain follows |
| Everything looks fine but replies are low | It may be inbox placement or it may be the offer. Compare the warming inbox rate with campaign results |
What EmailPal will not pretend
EmailPal covers the infrastructure half: DNS, warming, verification, holds and recovery. The list, the targeting and the copy are still yours, and no infrastructure rescues a scraped list sent with a three-link HTML pitch. We also will not tell you that a new IP fixes a burned domain, or that a setting guarantees the inbox. Cold email deliverability guide, Domain reputation.
FAQs
Why did my emails go to spam when my DNS is correct?
DNS gets you in the door. Reputation, volume, list quality, complaints and copy decide the folder. Check the bounce numbers and the warming inbox rate next.
Will a new IP or domain fix it?
A new IP does not fix a burned domain. A new domain starts with no reputation, so it needs 14 days of warming, and it needs a cleaner list or it will follow the same path.
How long does a hit domain take to recover?
After a Gmail refusal: 7 days resting, then about 8 days ramping to 15 a day, then 3 clean days. A domain that is refused again while ramping rests for 14 days, and the second failed restart ends in Replace.
Can I resume a rested domain early?
No. Resume is switched off until the rest period ends, because restarting early deepens the damage.
Why did only one domain get throttled?
Throttles are scoped to the domains whose own results caused them. When most of an account's domains are held or recovering, a person reviews the account instead of the system cutting everything.
Does warming keep running when a mailbox is held?
Yes, for a mailbox hold. For a Gmail domain refusal, warming drops to 4 a day per mailbox while the domain rests or ramps, and is paused if the domain reaches Replace. Warm-up guide.
Is a high open rate proof that I am in the inbox?
No. Bot and privacy-proxy opens inflate it. Use replies, seed tests and the warming inbox rate.
Should I change the From name or subject every day?
No. That looks like evasion and does not fix a list or volume problem.
Need more help?
Why emails go to spam is the short checklist. For a specific domain or mailbox, open a ticket with the domain, the mailbox and whether you are on a plan mailbox or a pre-warmed lease.