Why Your Campaign Emails Go to Spam (and It’s Not Your Subject Line)
One spam report in every 1,000 emails. That is the line Google asks bulk senders to stay under, and most businesses have never checked which side of it they are on.
When open rates slide, the usual reaction is to rewrite the subject line. But subject lines rarely decide whether an email reaches the inbox. Gmail, Yahoo and Outlook decide that from how you treat your list: who you email, who you keep emailing after they bounce or complain, and whether you can prove the email really came from you.
This post covers the rules the big mailbox providers now enforce, the six habits that most often push campaign emails into spam, and a checklist to fix them.
The rules changed in 2024, and again in 2025
Since February 2024, Gmail and Yahoo have set written requirements for anyone sending bulk email. Microsoft followed for Outlook.com, Hotmail and Live addresses in 2025. If you send newsletters to more than a few thousand people, these apply to you.
| Provider | Who it applies to | Authentication | Spam complaints | Unsubscribe |
|---|---|---|---|---|
| Gmail | 5,000+ messages a day to Gmail, from February 1, 2024 | SPF, DKIM and a DMARC record (p=none is enough) | Keep below 0.10%; never reach 0.30% | One-click unsubscribe plus a visible link |
| Yahoo | All senders, stricter for bulk | SPF and DKIM, DMARC with at least p=none | Keep below 0.3% | One-click unsubscribe, honoured within 2 days |
| Outlook.com | 5,000+ messages from one domain to Microsoft consumer addresses | SPF and DKIM must pass, DMARC record published | Not a published threshold | Clear unsubscribe recommended |
The consequence differs by provider, but none of them is good. Outlook.com now rejects failing mail outright with the error 550 5.7.515 Access denied, sending domain does not meet the required authentication level. Gmail and Yahoo filter it to spam or throttle it.
The complaint numbers are the striking part. Google’s 0.10% target is one report per 1,000 emails. Its 0.30% ceiling is three. A list of 10,000 people can cross it with 30 annoyed readers.
Reason 1: You keep emailing addresses that no longer exist
About a quarter of any email list goes bad every year. ZeroBounce’s 2026 list decay report, based on everything it verified in 2025, found that at least 23% of a list decays within one year, and only 62% of the addresses submitted to it were valid. People change jobs, abandon old inboxes and close accounts.
Every email to a dead address comes back as a hard bounce. Mailbox providers read a high bounce rate as a sign that you do not look after your list, and Amazon SES says plainly that high bounce rates can send your email to spam. Amazon publishes the limits it holds its own senders to:
| Hard bounce rate | What Amazon SES does |
|---|---|
| Below 2% | The recommended level |
| 5% or more | Account placed under review |
| 10% or more | Sending may be paused |
There is a worse risk than the bounce itself. Amazon notes that some spam traps are converted from addresses that were once valid but have been bouncing for a long time. Keep mailing a dead address and you may one day be mailing a trap, and even a small number of spam trap hits can damage your reputation.
The fix: remove an address the first time it hard bounces, and stop after repeated soft bounces. A good email tool does this for you when your sending service reports the bounce.
Reason 2: People are pressing “Report spam”, and you keep emailing them
A spam complaint is the strongest negative signal a mailbox provider gets. The thresholds are tiny: Google asks bulk senders to stay below 0.10% and never reach 0.30%, Yahoo draws its line at 0.3%, and Amazon SES puts an account under review at 0.1% and may pause it at 0.5%.
The reports you see are also only part of the picture. In Amazon’s words, “for every person who complains, there are potentially dozens who didn’t appreciate your mail who didn’t (or weren’t able to) complain.” Those silent readers stop opening, and mailbox providers notice that too.
The most damaging mistake is to keep emailing someone after they complain. Amazon’s instruction is to remove them and stop sending immediately, and not even to send an email confirming the request. Each further email to that person is another chance for a report.
The fix: connect your sending service’s complaint reports to your email tool, so a complaint stops all further mail to that person automatically. Then look at why people complain: usually the email is not what they signed up for, or they cannot find a way out.
Reason 3: Nothing proves the email really came from you
Three DNS records let a mailbox provider check that your email is genuine:
- SPF lists the servers allowed to send for your domain.
- DKIM signs each email, so tampering or forgery shows.
- DMARC tells providers what to do when the first two fail, and ties them to the address in the From line.
All three providers now require them for bulk senders, as the table above shows. Outlook.com goes furthest and rejects failing mail outright.
Many businesses still have not set them up. EasyDMARC’s 2025 DMARC Adoption Report checked the top 1.8 million email domains by web traffic and found that 52.2% had no DMARC record at all. Only 7.7% used the strictest policy, p=reject. If large, high-traffic sites miss this, small businesses are more likely to.
A common trap is sending through a newsletter tool or SMTP service with your own address in the From line, but without adding that service to your SPF record or setting up DKIM for your domain. The email then fails alignment, even though nothing looks wrong to you.
The fix: ask your sending service for its SPF include and DKIM records, add them to your domain’s DNS, and publish at least v=DMARC1; p=none. Then send yourself a test to Gmail, open it, choose Show original, and check that SPF, DKIM and DMARC all say PASS.
Reason 4: Leaving is harder than reporting you
If unsubscribing takes a login, a form or a hunt for tiny grey text, the “Report spam” button is always one click away. People take the easy exit, and every one of those exits counts against you.
That is why one-click unsubscribe is now required. Gmail asks bulk senders for a one-click unsubscribe in the email headers and a visible unsubscribe link in the message. Yahoo requires the same and expects unsubscribes to be honoured within 2 days.
The standard behind it is RFC 8058, published in January 2017. It adds a List-Unsubscribe-Post: List-Unsubscribe=One-Click header beside the List-Unsubscribe link, so Gmail or Yahoo can unsubscribe someone directly from their own interface, with no landing page and no confirmation step. That is the Unsubscribe link you see next to the sender’s name in Gmail.
The fix: make sure your email tool sends both headers, keep a plain unsubscribe link in every footer, and process unsubscribes immediately rather than in a weekly import. Amazon SES puts it simply: provide an obvious and easy way to unsubscribe.
Reason 5: Some people on your list never asked to hear from you
People report email they did not ask for. A ZeroBounce consumer survey from May 2025 found that 47% of people report an email as spam if they did not give explicit permission to receive it.
The obvious culprit is a bought or rented list. Amazon SES says never to buy, rent or share email addresses, and warns that purchased lists are how senders end up mailing spam traps.
The less obvious culprit is mixing up two kinds of permission. Someone who bought from you agreed to receive their receipt and delivery updates. That is not the same as agreeing to your newsletter. Amazon’s own definition of unsolicited email includes exactly this case: “a recipient signs up for a certain type of mail (for example, notifications), and instead is sent a different type of mail (for example, advertisements).”
This creeps in quietly: customers imported from a shop, contacts synced from a CRM, or event attendees added to the main list.
The fix: keep transactional contacts (customers you may email about orders) separate from marketing subscribers, and send campaigns only to people who opted in. For new sign-ups, use double opt-in: a confirmation email they must click before they receive anything else. It also stops fake and mistyped addresses at the door.
Reason 6: Your open rate is hiding the problem
Many senders judge their list by open rate, and keep emailing everyone who seems to open. Since 2021, that number has stopped meaning what it used to.
Apple announced on June 7, 2021 that “Mail Privacy Protection stops senders from using invisible pixels to collect information about the user.” In practice, Apple Mail loads each email’s images in the background when it arrives. As Litmus explains, nearly every email delivered to an Apple Mail user then looks opened, whether or not anyone read it. Litmus put Apple Mail at about half of all email opens when the feature launched.
The result is a list that looks healthy while it decays. People who stopped reading months ago still count as “opened”, so they never get cleaned out. Amazon SES advises stopping sending to people who don’t open or click, and if your opens are inflated you never find out who they are.
The fix: judge engagement by clicks, replies and purchases, not opens. Choose A/B test winners by click rate where you can. Every few months, ask people who haven’t clicked in a long time whether they still want your email, and remove those who don’t answer. A smaller list of people who read your email reaches the inbox more often than a large list of people who ignore it.
Does this apply to Amazon SES, Mailgun, Mailtrap and the rest?
Yes. Every rule in this article is set by the inboxes that receive your mail (Gmail, Yahoo and Outlook), not by the service that sends it. Amazon SES, Mailgun, Mailtrap, SendGrid, Postmark, Brevo, Resend and your Google Workspace account all hand your message to the same inboxes, and those inboxes judge it the same way: is it authenticated, do people complain, does it bounce, can they leave in one click.
So switching services does not fix a list problem. Your reputation follows the domain in your From address, and a list full of dead addresses bounces just as hard through any provider.
What changes from one service to the next is the plumbing:
| What | How it differs by service |
|---|---|
| Authentication | Every service needs SPF, DKIM and DMARC on your domain, but each gives you its own DNS records to add. |
| The service’s own limits | On top of the inbox rules, each service polices its own customers. Amazon SES, for example, puts an account under review at a 5% bounce rate or a 0.1% complaint rate. |
| One-click unsubscribe | Some services add the List-Unsubscribe headers for you; with others, your app has to. Send yourself a test and look at the headers. |
| Bounce and complaint reports | Each service reports them back in its own format, through its own webhook. |
| Complaint data | Not every inbox reports complaints to every service. Amazon notes that Gmail does not pass on spam reports from its web client to SES. |
| Suppression list | Each service keeps its own list of addresses that bounced or complained, and it stays with that account. Amazon’s applies to “your AWS account in the current AWS Region”. |
That last row catches people out. Move to a new service and it starts with an empty suppression list, ready to send to every address the old one had stopped. Keep your own record of bounced and complained addresses with your contacts, and that decision moves with you.
Checklist: fix it this week
- Add SPF and DKIM for your sending service, and publish a DMARC record (
v=DMARC1; p=noneat minimum). - Send a test to Gmail, open Show original, and confirm SPF, DKIM and DMARC say PASS.
- Connect your sending service’s bounce and complaint reports to your email tool, so dead addresses and complainers are stopped automatically.
- Remove addresses after a hard bounce, or after repeated soft bounces.
- Stop all email to anyone who reports you as spam.
- Check that every campaign has one-click unsubscribe headers and a visible unsubscribe link, honoured immediately.
- Send campaigns only to people who opted in. Keep customers who only agreed to receipts out of newsletters.
- Turn on double opt-in for new sign-ups.
- Never buy, rent or borrow a list.
- Judge engagement by clicks, not opens, and clean out people who haven’t clicked in months.
- Register your domain in Google Postmaster Tools and check your spam rate stays below 0.10%.
None of this involves your subject line. Get these right, and the subject line finally gets the chance to matter.
Sources
- Google: Email sender guidelines (bulk sender requirements from February 1, 2024; spam rate targets)
- Yahoo: Sender best practices (authentication, 0.3% spam rate, unsubscribes within 2 days)
- Microsoft: Fix NDR error 550 5.7.515 in Outlook.com (high-volume sender requirements)
- Amazon Web Services: Amazon SES sending review process FAQs (bounce and complaint thresholds, spam traps, unsolicited email)
- Amazon Web Services: Using the Amazon SES account-level suppression list (scope per account and Region; Gmail complaint data)
- ZeroBounce: The Email List Decay Report for 2026 (2025 data: 23% annual decay, 62% valid)
- ZeroBounce: Survey: 93% of consumers check email daily (May 8, 2025: 47% report unsolicited email as spam)
- EasyDMARC: 2025 DMARC Adoption Report (May 29, 2025: 52.2% of top 1.8M domains without DMARC)
- IETF: RFC 8058, Signaling One-Click Functionality for List Email Headers (January 2017)
- Apple: Privacy announcement for iOS 15 and macOS Monterey (June 7, 2021)
- Litmus: Identifying real opens after Mail Privacy Protection (June 29, 2021)
Vendor figures (ZeroBounce, EasyDMARC, Litmus) come from each company’s own data and are cited as they report them.
