Cold Emails Going to Spam With SPF, DKIM and DMARC Set Up

Authentication passes and placement is still broken. Here are the seven causes that survive a clean SPF, DKIM and DMARC setup, the test that identifies each one, and the order to work through them.

Deliverability · ·11 min read ·By the SDRclose team
In this article
  1. Key takeaways
  2. Cause 1: domain age and the Microsoft 365 silent drop
  3. Cause 2: per-inbox volume, and why 15 to 30 a day replaced 50
  4. Cause 3: engagement and complaint rate against Google's thresholds
  5. Cause 4: list quality, bounces and the "verified" data problem
  6. Cause 5: warmup that was too short or too fast
  7. Cause 6: content signals
  8. Cause 7: an accumulated trust collapse and the 4.7.x codes
  9. The order we diagnose in, and what to monitor per mailbox
  10. Cold emails going to spam is a systems problem, not a settings problem

SPF, DKIM and DMARC are pass/fail checks on who is allowed to send as your domain. They are necessary, they take an afternoon, and they say nothing at all about whether your mail deserves the inbox. That is why cold emails going to spam after a clean authentication setup is the single most common outbound complaint that never gets a real answer: the checklist is finished, and placement is still broken.

Every ranking guide stops at the DNS records. The threads where operators actually compare notes go much further, and they converge on seven causes. Authentication gets you admitted to the evaluation. Domain age, volume per mailbox, engagement, list quality, warmup pace, content and accumulated reputation decide the result.

Below is each cause with a test you can run this week and a fix, roughly in the order we work through them.

Key takeaways

  • Authentication is an entry requirement, not a placement strategy. Passing SPF, DKIM and DMARC only means you are eligible to be judged.
  • Silence with no bounces and no out of office replies usually points at domain age, particularly with Microsoft 365 recipients, not at your copy.
  • Per-inbox volume is the fastest lever. Reply rates fall and spam rates climb steeply above roughly 100 sends per mailbox per day.
  • Google asks senders to stay under a 0.1% spam rate and never to reach 0.3%, and has been increasing enforcement since November 2025.
  • Unverified and purchased lists carry bounce rates several times higher than verified ones, and bounce rate feeds reputation directly.

Cause 1: domain age and the Microsoft 365 silent drop

The clearest symptom is the absence of symptoms. No replies, no bounces, no out of office notices, nothing. In a thread titled "No replies, no bounce, no OOO messages, are we in the domain age black hole?" operators sending from four to six week old domains to Microsoft 365 recipients report total silence despite correct authentication. The comments are consistent: "Microsoft puts new domains in a silent rejection bucket for 60-90 days" and "silent drops with zero bounces and zero OOO is classic Microsoft."

That is a reputation-building period, not a bug. A brand new domain has no sending history, so filters have nothing to weigh except the pattern of the traffic itself, and cold outreach patterns look exactly like the thing they are trained to stop.

Recipient provider mix matters more than most senders expect. Hunter's State of Email Outreach 2026, based on 31 million emails sent by its users in 2025, reports a 5.9% reply rate when sending to Google Workspace recipients versus 4.0% to Microsoft 365, and 5.2% from custom domains versus 2.5% from freemail addresses.

Test: segment your last campaign by recipient mail provider. If Google recipients reply and Microsoft recipients are pure silence, domain age is the leading suspect.

Fix: age domains before they carry cold traffic, keep sending volume tiny for the first weeks, and expect the Microsoft picture to improve slowly. Provider-by-provider differences are covered in Google Workspace vs Outlook vs Zoho for cold email.

Cause 2: per-inbox volume, and why 15 to 30 a day replaced 50

The 2022 advice to push 200 emails a day per inbox is what breaks most otherwise-correct setups. A dataset of more than 2 million cold emails published by Sales.co in January 2026 shows how sharply performance decays with volume per mailbox.

Daily sends per mailbox Reply rate
20 to 50 2.8%
50 to 75 2.5%
75 to 100 2.1%
100 to 150 1.4%
150 to 200 0.8%
200+ 0.4%

The same analysis found mailboxes above 150 sends a day showing a 43% higher spam rate, reaching 16.2% at 200 or more against under 1.5% in the safe range, and recommends 50 to 100 per mailbox per day spread across three to five domains.

Practitioners run tighter than that. The operator behind "I sent 1 million cold emails" capped sends at 15 per inbox per day on Google Workspace and reports that at that rate "our domains actually lasted nine or ten months." Hunter's 2026 data points the same direction, with 20 to 49 emails per day per account producing the best reply rate at 5.7%.

Test: divide your monthly send volume by mailboxes and working days. If the number is above 50, you have found a cause without looking further.

Fix: set hard per-mailbox daily and hourly caps and a minimum gap between sends, then add mailboxes instead of raising caps. SDRclose enforces caps and send gaps per mailbox and rotates across up to 12 mailboxes on an account. The full math is in how many cold emails per day per inbox.

Cause 3: engagement and complaint rate against Google's thresholds

Filters increasingly score behavior, not content. Replies, opens on real interest, moves out of spam and stars are positive. Deletes without reading, ignores and "report spam" clicks are negative, and the last one is weighted brutally.

Google's sender FAQ recommends keeping your spam rate below 0.1% and preventing it from "ever reaching 0.3% or higher." Since June 2024, senders above 0.3% are ineligible for mitigation, and Google states that "starting November 2025, Gmail is ramping up its enforcement on non-compliant traffic." Yahoo's Sender Hub sets the same 0.3% ceiling.

One nuance saves a lot of confusion. Google is explicit that the sender guidelines "don't apply to messages sent to Google Workspace accounts" and that its requirements and enforcement apply when sending to personal Gmail accounts. Business inboxes still filter you, they just filter you under Workspace administrator policies and general spam scoring rather than the bulk-sender program.

The blunt version came from a top comment in "Been in outreach for 2 years, everything keeps going to spam": "even with perfect tech setup, if your engagement sucks you're dead."

Test: register your sending domains in Google Postmaster Tools and watch the spam rate against 0.1%. A domain that has crossed 0.3% needs a full stop, not a tweak.

Fix: cut list size and raise relevance until the reply rate rises. Engagement is the metric you are actually optimizing.

Cause 4: list quality, bounces and the "verified" data problem

Bounce rate is a reputation input, and it is almost entirely a sourcing decision. Cleanlist's 2026 aggregate, built from Outreach, Instantly, Woodpecker and Backlinko data, separates lists cleanly: verified lists at 4.6% reply and 1.2% bounce, unverified at 2.3% and 7.8%, and purchased lists at 0.8% reply and 18.5% bounce.

Woodpecker's dataset of more than 20 million emails puts the average bounce rate at 5.1%, calls under 2% good and under 1.5% excellent. If you are north of 5%, your list is doing the damage, and no subject line rewrite will offset it.

"Verified" on a vendor label is not a guarantee. Reviewers of large B2B databases report a wide gap between claimed and observed accuracy; one analysis of Apollo's data notes claimed 91% email accuracy against real-world reports of 65 to 80%, with users reporting 15 to 35% bounce rates (Prospeo, 2026). Treat any provider's verification as a starting point and re-verify before a large campaign.

Test: pull the bounce rate of your last 500 sends. Above 3%, stop and clean.

Fix: verify immediately before sending rather than at import time, suppress catch-all domains on new sending domains, and remove role addresses. Bounce thresholds get a deeper treatment in our post on cold email bounce rate.

Cause 5: warmup that was too short or too fast

Most warmup failures are schedule failures. Mailwarm's 2026 guidance sets realistic durations: two to four weeks for a new mailbox on an aged domain, four to eight weeks for a new domain on shared infrastructure, six to twelve weeks for a new domain on a dedicated IP. Its ramp runs 10 to 15 a day for the first three days, 20 to 30 through day seven, 40 to 70 in week two, and 80 to 150 in weeks three and four only if metrics hold.

Sales.co's data puts numbers on the payoff: accounts warmed properly reached 94% inbox placement by day 21 against 61% for accounts that skipped warmup, and it recommends keeping 5 to 10 warmup emails a day running indefinitely.

Community guidance has moved slower still. The recurring advice in the same spam thread is that "warmup needs to be slower (think 30-60 days)." There is a real dissent worth knowing: in "Is Email Warmup BS?" some operators argue that at three to five emails a day you do not need warmup at all, and others say shared warmup pools are actively damaging because "the content of these warmup emails is wildly spammy."

Test: compare the date of your first cold send against the domain's creation date. Under three weeks is a cause on its own.

Fix: ramp on a schedule, not on impatience, and block cold sends from mailboxes that are still warming. SDRclose runs a progressive warmup ramp with a guard that refuses to cold-send from a mailbox that is not ready. Timelines by scenario are in how long to warm up a new email domain.

Cause 6: content signals

Content is rarely the first cause, but it is often the last 10%. Three signals do most of the damage.

Heavy HTML. The million-email operator reports plain text outperforming HTML, and the pattern repeats across practitioner threads. Tracking pixels, images and multi-link templates all make a one-to-one business email look like a newsletter.

Link and image load. One relevant link is normal. Three links, a logo and a tracked image on a first touch is a campaign, and it is scored as one. Cold first touches from SDRclose stay light on links by design.

AI tells. Hunter's 2026 decision-maker survey found 69% of decision makers are bothered by AI-written emails, with 65% citing overselling and 61% irrelevance as their top complaints. A widely read Hacker News discussion of cold email put it in recipient language: AI-written outreach is "instantly obvious" and "a bit annoying." Machine-shaped phrasing raises complaint rates, and complaint rate is a deliverability input. SDRclose strips the standard tells (the "I hope this email finds you well" opener, "leverage", "seamless", "game-changer" and their relatives) from generated copy before anything reaches the review queue.

Test: send the same message to a seed inbox as plain text and as your current template. If plain text lands and the template does not, the template is the problem.

Fix: send first touches as plain text, keep them to one link and no images, and cut machine-sounding phrasing before the message goes out.

Cause 7: an accumulated trust collapse and the 4.7.x codes

Reputation is cumulative, and once it has genuinely broken, individual fixes stop working. The signature is a step change: placement that was fine for months collapses in days across every campaign on the domain.

Red Sift's analysis of Gmail's November 2025 enforcement describes what that looks like at the protocol level: non-compliant senders receive 4.7.x temporary failure codes that rate-limit their mail, and 5.7.x permanent failures that block it outright. Microsoft's equivalent for domains sending 5,000 or more messages a day to consumer Outlook, Hotmail and Live addresses is a hard rejection, "550 5.7.515 Access denied, sending domain does not meet the required authentication level," in force since May 2025 (dmarcian). Provider thresholds move, so verify the current Google, Yahoo and Microsoft sender documentation before you design a program around any published number.

Test: read the raw SMTP responses in your mailbox logs. A 4.7.x or 5.7.x code is a definitive answer, not a guess.

Fix: stop cold sending from that domain, keep only light warmup traffic, fix the underlying cause (usually complaints or bounces), and plan on weeks. Move production traffic to a separate domain in the meantime, and read the platform requirements in bulk sender rules for cold email.

The order we diagnose in, and what to monitor per mailbox

Work top to bottom and stop at the first cause you find, because fixing two things at once teaches you nothing.

Step Check Threshold that means "this is your problem"
1 SPF, DKIM, DMARC pass and align Any fail
2 Domain age and recipient provider mix Domain under 60 days, Microsoft recipients silent
3 Sends per mailbox per day Above 50
4 Bounce rate, last 500 sends Above 3%
5 Spam rate in Postmaster Tools Above 0.1%
6 Warmup duration before first cold send Under 3 weeks
7 SMTP response codes Any 4.7.x or 5.7.x
8 Template weight, plain text seed test Template loses to plain text

Once the diagnosis is done, keep it from recurring by monitoring the mailbox rather than the campaign. SDRclose checks SMTP and IMAP connectivity, credential validity and the SPF, DKIM and DMARC DNS records for each connected mailbox, alerts when one breaks, and enforces daily and hourly caps with a minimum gap between sends. Sequence-level controls live on the sequences page, and the wider setup guide is our deliverability guide.

Cold emails going to spam is a systems problem, not a settings problem

Authentication is one row in an eight-row table. The other seven are decisions about how much you send, to whom, from a domain of what age, warmed for how long, with what complaint rate attached. Teams that fix placement permanently do it by lowering volume per mailbox and raising relevance, which are the same two levers that raise reply rates anyway.

If you would rather have caps, warmup guards and mailbox health checks enforced by the tool than remembered by a person, start a 7-day trial and connect one mailbox.

Frequently asked questions

Why do my cold emails go to spam even with SPF, DKIM and DMARC?

Because authentication only proves you are allowed to send as your domain. It says nothing about volume, list quality or how recipients react. The usual causes after a clean setup are domain age, too many sends per mailbox per day, a high bounce rate, complaints above Google's 0.1% guidance, warmup that was too short, or heavy template content.

Why am I getting no replies, no bounces and no out-of-office messages?

Total silence usually means silent filtering rather than a copy problem. Operators on r/coldemail describe sending from four to six week old domains to Microsoft 365 recipients and getting nothing back, with comments pointing at a silent rejection bucket for new domains lasting 60 to 90 days. Segment your results by recipient provider to confirm.

How many cold emails per inbox per day is safe in 2026?

Well under the old advice. A Sales.co dataset of more than 2 million cold emails shows reply rates falling from 2.8% at 20 to 50 daily sends to 0.4% above 200, with a 43% higher spam rate above 150. It recommends 50 to 100 per mailbox per day; many practitioners run 15 to 30 and keep domains healthy far longer.

Does HTML formatting hurt cold email deliverability?

It can. Practitioner reports consistently find plain text outperforming HTML for cold outreach, and heavy templates with tracking pixels, images and several links resemble bulk marketing rather than a one-to-one business message. Keep the first touch plain, with at most one link. Run a seed test with both versions before blaming your copy.

How do I recover a domain that Gmail is filtering?

Stop cold sending from it. Keep only light warmup traffic, fix the underlying cause (usually complaints or bounces), and give it weeks rather than days. Check raw SMTP responses for 4.7.x rate-limiting or 5.7.x rejection codes, which confirm enforcement rather than guesswork, and move production campaigns to a separate domain meanwhile.