Blog

How to stop emails going to spam: a sender's checklist

Sender's triage for how do i stop emails going to spam: check records, reputation and list in order, using free SPF/DMARC and email header tools.

SendRaven9 min read

The short answer to how do I stop emails going to spam: check your records, your reputation and your list, in that order. Spam placement usually comes from one of those three places. Records are the cheapest to fix and the easiest to verify. Reputation takes longer. List problems are the ones people skip.

Here is a triage you can run in about 15 minutes. First, confirm SPF, DKIM and DMARC pass on a real message. Second, check whether your transactional and marketing mail share one reputation. Third, look at who you are mailing and how you handle bounces and unsubscribes. One caveat up front: no sender can guarantee inbox placement, and SendRaven doesn't quote a deliverability figure until it has earned one.

The spam folder is the email archaeology site nobody wanted to dig. Let's get you out of it.

Symptoms point to the cause

Mailbox providers judge your domain and your behavior, not just the words in the body. Swapping a spicy subject line rarely fixes anything. Something in how you send, who you send to and how you prove who you are is usually the cause.

Use the pattern of what lands in junk to guess where to look:

SymptomLikely causeWhere to look
Everything goes to junk, at every providerMissing or failing authentication, or a damaged domain reputationMessage headers; your SPF, DKIM and DMARC records
Only campaigns land in junk, receipts and resets are fineList quality, or the reputation of your campaign streamBounces, unsubscribes, who is on the list
Only a new domain is affectedNo sending history yetHow fast you ramped up
Only one provider puts you in junkThat provider's private filtering, often tied to engagementRecipients' behavior at that provider
Replies and forwards fine, cold sends badRecipients don't recognize the senderList source and expectations

Find your row first. Then work through the steps below in order.

Step 1: authenticate your domain (SPF, DKIM, DMARC)

Authentication is how a receiving server checks that you are allowed to send as your domain. Three records do the work:

  • SPF lists the servers allowed to send mail for your domain. It proves the sending server is on your approved list.
  • DKIM adds a cryptographic signature to each message. It proves the message wasn't altered and that your domain's key signed it.
  • DMARC tells receivers what to do when SPF or DKIM fail and don't align with the From address, and where to send reports. Alignment means the domain that passed matches the domain people see in From.

If you need to build the records, use the free SPF and DMARC record generator. Publish SPF and DMARC as DNS TXT records. DKIM keys come from whoever sends the mail for you, so publish whatever your sender gives you.

Read a header from a message that landed in junk

Don't guess. Open a message that went to junk, view its original source and look for the Authentication-Results header. Paste the whole thing into the email header analyzer if you'd rather not squint. An illustrative example of a healthy result:

Authentication-Results: mx.example.net;
 spf=pass smtp.mailfrom=mail.yourdomain.com;
 dkim=pass header.d=mail.yourdomain.com;
 dmarc=pass header.from=yourdomain.com

What to check:

  1. spf= should say pass. fail, softfail or none means the sending server isn't on your list, or there is no list.
  2. dkim= should say pass. none means the message wasn't signed. fail means the signature broke or the key doesn't match.
  3. dmarc= should say pass. This is where alignment bites: SPF and DKIM can each pass for a domain that isn't the one in your From address, and DMARC still fails.
  4. header.from, header.d and smtp.mailfrom should all point at your domain, or a subdomain of it.

The Message-ID header is the unique label each message carries. It won't tell you why a message went to junk, but it is what you quote when you search logs for one specific send.

Alignment matters enough that SendRaven's sender_authenticated field on inbound mail reflects DMARC or aligned DKIM.

If all three say pass and your mail still lands in junk, move on. Records are necessary. They aren't sufficient.

Step 2: keep transactional and marketing reputation apart

Reputation attaches to the domain and sending identity you use. If your newsletter and your password resets share one identity, they share one reputation. A campaign that draws complaints can then drag down the mail people actually need to receive. Resets in junk are a support ticket factory.

SendRaven's design answer is two sending identities per domain: mail. for transactional email and news. for campaigns. Each has its own reputation. The site's framing is that a newsletter cannot trash the reputation of your password resets.

To be clear, this is a design choice, not a promise of inbox placement. It keeps the two streams' reputations apart, so you can look at each on its own. It doesn't make mailbox providers like your campaigns any more.

For more on the design, read one plan, two reputations.

Step 3: warm up a new domain instead of blasting it

A brand-new domain has no sending history. Mailbox providers have nothing to judge it by, and a sudden large send from an unknown domain looks a lot like what spammers do. So don't start with your whole list on day one.

The principle is simple: start small, send to people who will engage, and increase volume gradually as the signals come back healthy. We aren't going to give you a magic volume schedule, because there isn't one that holds across providers. Pace yourself, watch bounces and complaints, and back off if they climb.

For the longer version, see how to warm up a new sending domain.

Step 4: clean up your list and your bounces

Mailing addresses that don't exist, again and again, tells providers you don't know who you are mailing. That is a reputation problem you create yourself.

Bounces

A permanent bounce (the address or its domain doesn't exist) should stop you from mailing that address. In SendRaven, only permanent bounces are suppressed, and suppression is scoped by kind. A temporary failure, like a full mailbox, doesn't put an address on the list.

The details are in the suppressions section of the docs.

Unsubscribes

An unsubscribe has to mean stop. Suppressing the address while later steps of a sequence stay scheduled is how people end up hitting the spam button instead. In SendRaven, unsubscribe cancels queued sends. Automations also have five automatic exits:

  1. Unsubscribe
  2. Reply
  3. Suppression
  4. Topic opt-out
  5. Tag rule

A contact who replies, gets suppressed or leaves a topic stops receiving that sequence. Nobody should get step four of a nurture flow after asking you to stop.

Give people a smaller button than spam

Preferences opt down, not out. Topics let people say “less of this” without leaving entirely. A reader who wants the monthly digest but not the weekly promo has a better option than reporting you. Offer it.

And because SendRaven prices by emails sent, never by contacts stored, pruning a list doesn't change your bill. You pay for mail, not rows.

Step 5: stop a bad campaign before it goes out

A campaign send can't be recalled. Once it is out, it's out. So the checks go before the send.

  • Use preview. Look at what recipients will actually see, variables filled in, before anything leaves.
  • Let the guardrail refuse. SendRaven refuses to start a campaign if the bounce or complaint rate says so. Being told no at the start beats finding out in the middle.
  • Remember the shape of the mail. Marketing-class email has exactly one recipient per message. Each message stands alone.

That's it. It's mechanical on purpose. We make no claims about what this does for your results. It stops avoidable mistakes.

What we can't promise

We do not have a decade of warm IPs or an abuse team of forty, and we will not quote a deliverability figure until we have earned one. Nobody can guarantee inbox placement, because each mailbox provider runs its own private filtering and changes it without telling you.

Here is what is in your control:

  • Records. SPF, DKIM and DMARC set up and aligned.
  • Separation. Transactional and marketing mail on different identities.
  • List hygiene. Suppressed bad addresses, working unsubscribes, topics instead of all-or-nothing.
  • Pacing. A new domain ramped up, not blasted.

And here is what isn't: how each provider weighs those signals, and what your recipients do with your mail. Fix the first list. Respect the second.

For how we think about the rest, read how SendRaven approaches deliverability.

Run the checks, then send

Start with the free tools. Build your records with the SPF and DMARC record generator, then read a real message with the email header analyzer.

If you want transactional and campaign mail sent on separate identities from one API, start free. The Free plan is $0/month with 3,000 emails/month, unlimited contacts and 1 sending domain. A payment method is required to activate sending.

FAQ

Why are my emails going to spam?

Usually one of three things: your domain isn't authenticated properly, your sending reputation is weak or mixed, or your list doesn't want the mail. Providers judge the domain and the behavior, not only the content. Check records first, then reputation, then list.

How do I stop my emails going to junk?

Confirm SPF, DKIM and DMARC pass and align, keep transactional and marketing mail on separate identities, ramp up a new domain gradually, and remove bad addresses and honor unsubscribes. No sender can guarantee inbox placement, but these are the parts you control.

How do I check whether SPF, DKIM and DMARC are set up correctly?

Send a message to a mailbox you control, open its original source and look at the Authentication-Results header. You want spf=pass, dkim=pass and dmarc=pass, with your domain in the relevant fields. The free email header analyzer reads this for you.

Why do only my marketing emails go to spam and not my transactional ones?

Marketing mail goes to a broader list, so it tends to draw more complaints, more bounces and less engagement. If both streams share one reputation, the problem can spread to transactional mail. Separate identities, such as mail. and news., keep each stream's reputation its own.

Can anyone guarantee that emails won't go to spam?

No. Each mailbox provider uses private filtering that no sender controls. You can fix records, separate streams, clean your list and pace your sending. SendRaven doesn't quote a deliverability figure until it has earned one.

Does a new sending domain go to spam at first?

It can. A new domain has no history, and a sudden large send looks suspicious. Start with a small volume to people who will engage, and increase gradually while watching bounces and complaints.

Do I need separate sending domains or subdomains for newsletters and receipts?

Separate identities are a good idea, because reputation attaches to them. SendRaven gives each domain two sending identities: mail. for transactional and news. for campaigns, each with its own reputation.

Do bounces and unsubscribes affect whether my emails go to spam?

Indirectly, yes. Repeatedly mailing dead addresses signals a poorly maintained list, and ignoring unsubscribes drives people to the spam button. Suppress permanent bounces, and make sure an unsubscribe stops queued and later sequence sends.

How do I read email headers to find out why a message went to junk?

Open the message's original source and find Authentication-Results. Check the spf, dkim and dmarc results and whether the domains match your From address. Pasting the header into the email header analyzer shows the same results in plain terms.

  • how do i stop emails going to spam
  • how do i stop emails going to junk
  • why are my emails going to spam
  • how to prevent emails from going to spam
  • how to stop an email from going to junk

SendRaven

Try it

Give your agent an inbox, an outbox, and a seatbelt.

3,000 emails a month free, and an MCP server your agent can use today.