# Why Are My Emails Going to Spam? How to Find the Cause in Cold Email

> Emails going to spam have a handful of causes, and the pattern shows which: one provider, mailbox, domain or campaign. How to read it and fix it.

Canonical: https://ballast.to/blog/why-emails-go-to-spam
Last updated: 2026-11-02

Your emails go to spam for one of a handful of reasons: authentication is failing, your domain or mailbox has a bad record, your list draws bounces and complaints, you send faster than the account has earned, or something in the message itself looks wrong. Lists of 20 causes don't help, because you can't fix 20 things at once. The useful question is where the problem appears: at one provider, from one mailbox, on one domain or in one campaign. That pattern points at the cause, and you can usually read it the same day.

## Are your emails actually going to spam?

Check before you fix anything. A drop in replies has several explanations, and the copy, the list and the season all look the same on a chart. You want direct evidence.

Sending a test to your own Gmail doesn't count. You've likely emailed that account before, and your own contacts and history affect the result. Ask for a better sample: a placement test sends one email to test inboxes at several providers and reports inbox, spam or missing for each. It's a small sample and real recipients' filters can differ, but it answers "is this happening, and where?" in about an hour.

If a colleague or a friendly customer can check their spam folder, that helps too. Ask them to send you the headers from the email, which gives you the next step.

## How do you read why an email went to spam?

Open the email's headers. They hold the receiver's verdict on your authentication, and at Microsoft a verdict on spam too.

In Gmail, open the email, click More next to Reply, and choose [Show original](https://support.google.com/mail/answer/29436). The top of the page shows SPF, DKIM and DMARC. In the raw text, the same results look like this:

```text
Authentication-Results: mx.google.com;
  dkim=pass header.d=yourdomain.com;
  spf=pass smtp.mailfrom=yourdomain.com;
  dmarc=pass header.from=yourdomain.com
```

All three should say `pass`, and the domains should match your From address. DMARC passes only when [SPF or DKIM passes and aligns](https://support.google.com/a/answer/10032578?hl=en) with the From domain, so a pass on a tool's domain instead of yours won't carry it. Gmail doesn't give a spam score in the header, so a clean result here means your authentication isn't the reason, and you move on.

Microsoft gives more. Look for `X-Forefront-Antispam-Report`:

```text
X-Forefront-Antispam-Report: CAT:SPM;SFV:SPM;...;SCL:5;...
```

`SFV:SPM` means the filter marked it as spam, and `CAT` gives the category: `SPM` for spam, `HSPM` for high-confidence spam, `BULK` for bulk mail. Many guides tell you to read the `SCL` number. [Microsoft's own documentation](https://learn.microsoft.com/en-us/defender-office-365/message-headers-eop-mdo) says that in cloud organizations SCL doesn't decide what happens to the message, and to read `CAT` and the direction value instead.

## What does the pattern tell you?

Compare your results across what you can change. This is the part most guides skip, and in cold email it's the fastest route, because you usually have several mailboxes, domains and campaigns to compare.

| What you see | Most likely cause | Check first |
| --- | --- | --- |
| Spam at every provider | Authentication, or a bad record on the domain | [SPF](https://ballast.to/check/spf), [DKIM](https://ballast.to/check/dkim), [DMARC](https://ballast.to/check/dmarc), [blacklists](https://ballast.to/check/blacklist) |
| Spam at Microsoft, inbox at Gmail, or the reverse | That provider's view of you. Each keeps its own record | Bounce codes from that provider, then its header above |
| One mailbox is bad, others on the domain are fine | That account: pace, age, or a problem with its history | Its bounce rate and how fast it ramped up |
| Every mailbox on one domain is bad, other domains are fine | The domain's reputation | [Email reputation](https://ballast.to/blog/email-reputation) and a blacklist check |
| One campaign is bad, others from the same mailboxes are fine | That list or that copy | Run another campaign's email to the same provider, then this one |
| First email lands, follow-ups don't | Links, attachments or heavier wording added later | Compare the text of the steps |
| Only some companies | Their own gateway or admin rules | Usually nothing you can change |
| It started on a specific date | Whatever changed that day | New tracking link, new tool, a volume jump, a new list |

The last row is the one I'd check first if you have a date. Reputation rarely collapses without a cause, and the cause tends to be a change someone made that week.

## What causes cold email to go to spam?

These run roughly in the order I'd look.

### Authentication is missing or failing

Check SPF, DKIM and DMARC before anything else, because they're free to fix and it's over in minutes. Gmail asks every sender for SPF or DKIM, and asks anyone sending 5,000 or more a day for [all three](https://support.google.com/mail/answer/81126). A domain sending less than that can technically get by without DMARC, but there's no reason to leave it out. If your SPF record has grown past 10 lookups, it fails even though it looks right, and [SPF flattening](https://ballast.to/blog/spf-flattening) covers the fix.

### The list draws bounces and complaints

Cold email has a problem newsletters don't: nobody asked for it. People who don't want your email either ignore it or report it, and Gmail says that when someone [reports a sender](https://support.google.com/mail/answer/1366858), future mail from that sender may go to spam too. Dead addresses add to the record. Verify before sending, drop old exports, and read [what a spam trap is](https://ballast.to/blog/spam-traps) before you buy anything.

### You send more than the mailbox has earned

A new mailbox sending 50 cold emails on day one is an obvious pattern. The provider's limits don't tell you what's safe: Workspace allows 2,000 a day, and sending anywhere near that cold would end badly. [Gmail sending limits](https://ballast.to/blog/gmail-sending-limits) has the real numbers. Start low and add a little each day.

### Unsubscribes are missing or ignored

Gmail treats mail from someone you've unsubscribed from as spam: [if someone sends after you unsubscribe](https://support.google.com/mail/answer/1366858), the email goes directly to Spam. So an ignored opt-out costs you twice. People without a way out also use the spam button instead. Keep a link in every email and honour it everywhere, across campaigns. The [one-click header](https://ballast.to/blog/list-unsubscribe-header) gives Gmail a button to show next to your name.

### The message has links and tracking it doesn't need

This is where I'd spend effort after the above, and not before. A first email from a stranger with three links, a logo image and a tracked redirect doesn't look like a person writing to a person. Send the first email in plain words, with one link at most and ideally none. Open tracking adds a pixel and rarely gives you numbers you can trust. If you do track clicks, use your own link domain, because a shared tracking domain carries other senders' history along with yours.

### Your domain or IP is on a blacklist

Worth checking, and quick. A listing on Spamhaus is serious and needs the cause fixed before you ask for removal. A listing on a small list with no reach often changes nothing. If you send through Google Workspace or Microsoft 365, the IP isn't yours, so the domain listing is the one to watch.

## Do spam words matter?

Less than the lists suggest. Neither Gmail nor Microsoft publishes a list of banned words, and the "600 spam trigger words" articles that rank for this are guesses about filters that read far more than vocabulary. A trusted sender can write "free" and land fine. A sender with a bad record can write a careful note and land in spam.

Wording still matters in a narrower way. Pressure, fake urgency and a misleading "Re:" draw complaints from real people, and complaints do affect where you land. So edit for how a recipient will react, and don't spend an afternoon swapping "free" for "complimentary". Ballast's content checklist flags a short list of these words anyway, as a cheap second look at the wording. Passing it tells you nothing about where you'll land.

## What order should you fix things in?

1. Pause the campaign that looks worst, if the evidence points at it. Keep normal mail going.
2. Run a [domain check](https://ballast.to/check) and fix anything failing. This takes minutes and rules out the cheapest cause.
3. Read bounce codes from the last week. [Soft bounce vs hard bounce](https://ballast.to/blog/soft-vs-hard-bounce) separates dead addresses from receivers refusing you.
4. Clean the list and remove what bounced or complained.
5. Strip the first email down: plain words, no images, no tracking, one link at most.
6. Run a placement test, then restart at a lower volume with your best leads.
7. Change one thing at a time from there, and test again. If you change five things and it recovers, you won't know which one worked, and you'll carry the other four forever.

Warmup won't rescue a campaign that's failing for another reason. It can make a new mailbox look more like a person's, and it can help at the end of a repair, but the campaign's own bounces and complaints weigh more.

## Who shouldn't expect this to work?

If you're sending to a bought consumer list, no setting fixes that, and it's the case the filters were built for. If you need a guarantee, nobody can sell you one honestly: Gmail, Microsoft and each company's admin all decide for themselves.

## Finding it with Ballast

Ballast has most of this comparison built in. [Placement tests](https://ballast.to/docs/placement-tests) show inbox, spam or missing per provider and per mailbox, which covers the first rows of the table above, and they're included on every plan. Replies, bounces and complaints are broken down by campaign, step, mailbox and provider. A mailbox whose numbers slip takes fewer new leads, and one that crosses the [limits](https://ballast.to/docs/sending-safety) stops instead of running through the weekend. If you only want to rule out the setup, the [domain check](https://ballast.to/check) is free and needs no signup.

## FAQ

### Why do my emails go to spam when SPF, DKIM and DMARC all pass?

Because authentication only proves the email is from you. It says nothing about whether people want it. Once those pass, look at your bounces, complaints, sending pace and the message itself.

### Why are my emails going to spam at Outlook but not Gmail?

Each provider keeps its own record of your domain, and their filters differ. Read the `X-Forefront-Antispam-Report` header on an email that landed in Junk, check bounce codes from Microsoft addresses, and run a placement test. A mailbox on the same provider as the recipient tends to land better, so also check which provider you're sending from.

### Why did my emails suddenly start going to spam?

Look for what changed that week: a new list, a volume increase, a new link or tracking domain, a new tool, or a DNS edit that broke a record. If nothing changed on your side, check blacklists and your recent complaint and bounce numbers, since a slow rise can cross a line without any single event.

### Can I ask recipients to mark me as not spam?

You can, and for people who know you it helps. In cold email they don't see your mail in the first place, so it isn't a plan. Fix the cause.

### Do attachments send cold email to spam?

They add risk, especially from a sender the recipient doesn't know, and they rarely help a first email. Offer the file in the text and send it when someone replies.

### How do I stop my emails going to spam for good?

You can't set it once and leave it. Keep the list clean, send at a pace the mailbox has earned, honour every opt-out and read your numbers weekly.
