If your SPF, DKIM and DMARC records all pass and your newsletter still lands in spam, the records are probably not the only thing to look at. They show the email really comes from you; they don't decide on their own where it lands. Gmail and Yahoo also set limits on how many recipients mark your mail as spam, email platforms act on bounces and complaints, and who is on your list shapes both numbers.
Say a store sets up its records, imports two years of customer emails plus a list from an old giveaway, sends a big sale campaign to everyone, and the next campaign goes to spam for Gmail users. Nothing in DNS changed between the two sends, so the records don't explain the change. List quality and how recipients reacted are the next things to investigate.
So check in this order, and stop where you find the problem.
1. Confirm the records are actually aligned
Do a quick pass here, because "set up" and "working for this sender" are not the same thing.
- Your own domain is the sender. The From address should be something like news@yourstore.com, not a Gmail, Yahoo or Outlook address. Omnisend's help warns that free-mailbox From addresses conflict with DMARC and are often rejected, and Brevo says mail from free addresses gets rejected or filtered to spam.
- The domain in the From address matches what your email platform authenticated. If the platform signs with mail.yourstore.com but you send from yourstore.com (or the other way round), you can pass DKIM and still fail alignment. Omnisend, for example, treats root domains and subdomains as different domains here.
- One SPF record, not two. Every tool you add (store platform, newsletter tool, helpdesk) asks you to add SPF, and it is easy to end up with two separate SPF records. The SPF standard, RFC 7208, says a domain must not have more than one, and if it does, the check returns an error instead of a pass. All senders go into one record.
- Under 10 lookups. The same standard caps the DNS lookups an SPF check may trigger at 10 (each
include,a,mxand similar term counts). Go over and SPF errors out. If your record has a long chain of includes, remove tools you no longer use. - A DMARC record exists. Starting with
p=noneis fine; it monitors without blocking anything. Brevo warns that without DMARC, mail to Outlook, Hotmail and Live addresses is marked as spam or rejected.
Your email platform's domain settings page may show the status of each of these. If everything there passes, move on.
2. Look at where your contacts came from
If the records are fine, this is the next place to look. Write down every source that feeds your list:
| Source | Question to ask |
|---|---|
| Newsletter signup form | Is it protected from bots? Fake signups bounce or never engage. |
| Checkout opt-in | Did customers tick a box, or were they added automatically? |
| Imported old list | When did these people last hear from you? Did they agree to marketing? |
| Giveaway or contest entries | Did they sign up for the prize or for your emails? |
| Bought or rented list | Remove it. |
Gmail's sender guidelines say plainly: don't buy email addresses, and don't email people who didn't sign up to hear from you. Their spam reports count towards the spam rate Gmail and Yahoo ask senders to keep low.
If one source looks suspicious, check its numbers on its own. Imported or giveaway contacts that never open anything are a strong hint.
3. Check bounces and complaints
Open the report for your last few campaigns and find two numbers:
- Hard bounces: addresses that don't exist. Check that your platform stops sending to an address after it hard-bounces. A sudden jump can point to an old import or bot signups.
- Spam complaints: people who marked the email as spam.
Gmail requires senders to keep the spam rate shown in Postmaster Tools below 0.3% and recommends staying below 0.1%. Yahoo's sender best practices set the same 0.3% ceiling. Say 2,000 Gmail users get one campaign: 0.3% of them is six complaints. That's why a single campaign to an old list can be enough.
Email platforms watch these numbers too. Brevo, for example, can suspend your campaigns and account when a recent send goes above 2% hard bounces, 1% unsubscribes or 0.2% complaints.
4. Send to people who engage first
Omnisend's deliverability guide puts it bluntly: high engagement keeps you in the inbox, low engagement sends you to spam. If half your list hasn't opened anything in a year, half of every campaign goes to people who have stopped wanting it.
The fix is a segment, not a new tool:
- Make a segment of contacts who opened or clicked recently, or bought recently.
- Send your next few campaigns only to that segment.
- Send a short "do you still want these emails?" message to the rest, and remove the people who don't respond.
The same Omnisend guide recommends sending only to contacts who opened or clicked in the last 6 to 12 months, and sending your big campaigns to the most engaged segments first. Yahoo suggests periodically sending a reconfirmation email to inactive subscribers.
The list gets smaller, but that is not the goal in itself: the point is to stop sending to addresses that don't want your emails or can't receive them.
5. Watch what Gmail reports
Instead of guessing from open rates, look at what Gmail reports. Postmaster Tools shows your spam rate, authentication results, delivery errors and whether you meet Gmail's sender requirements, for mail you send to personal Gmail addresses. You verify your domain with a TXT record, then check it after each send.
One limit matters for small senders: Google says data may be missing when your daily volume to Gmail is too low. If the dashboards stay empty, use your platform's complaint and bounce numbers instead. Yahoo and Microsoft have their own sender tools, and some platforms, Brevo among them, show complaint rates by mailbox provider in campaign reports.
What Gmail, Yahoo and Microsoft require
The first column applies to every sender. The second applies once you send at volume, and it's worth meeting early.
| Provider | All senders | Larger senders |
|---|---|---|
| Gmail | SPF or DKIM; spam rate below 0.3% | More than 5,000 messages a day to Gmail: SPF and DKIM, DMARC, From domain aligned with SPF or DKIM, one-click unsubscribe |
| Yahoo | SPF or DKIM; spam rate below 0.3% | Bulk senders: SPF and DKIM, DMARC of at least p=none that passes, one-click unsubscribe, unsubscribes honoured within 2 days |
| Outlook / Hotmail | — | 5,000 or more messages to Microsoft consumer addresses from the same domain: SPF and DKIM pass, DMARC record, alignment; otherwise rejected with error 550 5.7.515 |
Gmail counts more than 5,000 a day; Microsoft counts 5,000 or more. Check the current pages before you rely on the exact threshold.
Check what you send and how you send it
You'll find long lists of "spam words" online. Gmail's guidelines focus on other things. The points that come from Gmail's own page:
- Send at a consistent rate rather than in bursts.
- If volume goes up, start with your engaged contacts and raise it gradually, watching spam rate and errors as you go.
- Make unsubscribing easy. Larger senders must offer one-click unsubscribe and a visible unsubscribe link in the message, and Gmail recommends giving every recipient an easy way out.
So a store that sends nothing for four months and then emails its whole list on Black Friday is doing what Gmail tells senders to avoid. A regular, smaller send to engaged people is the safer pattern.
Does switching email provider help?
Sometimes, but not on its own. Gmail's requirements and the spam rate it reports are tied to your sending domain, not to the platform you send from. Move the same list to a new platform and the same people ignore or report the same emails.
Changing platforms helps when the current one doesn't give you the controls above: authenticating your own domain, engagement segments, automatic bounce suppression and complaint reporting. In Omnisend, segments can combine purchase history with opens and clicks, so the "recent buyers and recent clickers" segment is one set of filters. Brevo shows DKIM and DMARC status for each sender and reports complaint rates by mailbox provider; it also enforces bounce and complaint thresholds on your account, so a bad import can get your campaigns suspended there quickly.
If you do move, import only the engaged part of your list.
Once delivery is back, the welcome email sequence is a good place to start building engagement with new subscribers from the first day.