A campaign report can show a 99% delivery rate while subscribers say the message landed in spam. That isn’t a contradiction: most email platforms count a message as delivered when the receiving server accepts it, not when it reaches the inbox.

The first job is to locate the failure. Was the message rejected, accepted but filtered, or accepted and simply not opened? Then narrow the problem by mailbox provider, campaign, audience segment, and sending date. That sequence is faster than changing subject lines or buying a new sending domain before you know what broke.

Illustrative image: email deliverability

Step 1: Establish what changed—and where

Pull reports for the affected send and several comparable sends before it. Record send volume, delivery delays, bounces, spam complaints, unsubscribes, clicks, and the audience selected. Note changes to the From domain, email platform, sending IP, signup source, frequency, template, or links.

Break the results out by recipient domain. If Gmail addresses deteriorated while Yahoo and Outlook addresses held steady, investigate Gmail-specific errors and feedback first. If every provider worsened after you imported an older list, the audience is a stronger lead. If the trouble follows one automated series rather than every campaign, examine that series’ recipients, content, and sending setup.

Don’t diagnose inbox placement from open rate alone. Apple Mail Privacy Protection can make reported opens unreliable; a genuine drop in clicks or purchases is more useful context, though it still doesn’t prove where messages landed. Ask a few affected subscribers for the message and its full headers. Check the inbox, spam or junk folder, and any other tabs or folders separately.

Step 2: Read the delivery errors before changing the campaign

Start with your email platform’s event logs, not its headline “delivered” percentage. For each affected provider, separate:

Result What it tells you What to inspect next
Permanent rejection The receiving server did not accept the message The full SMTP response: invalid address, authentication, policy, or another reason
Temporary failure or delay Delivery may still succeed after a retry The response text, retry history, sending rate, and whether one provider is affected
Accepted delivery The receiving server took the message Inbox versus spam placement, complaints, and recipient-side filtering

A bounce rate is a starting signal, not a diagnosis. Divide bounced messages by attempted messages for the same send, then inspect the reasons. A nonexistent mailbox calls for list cleanup; a policy rejection calls for a different fix. Amazon SES distinguishes persistent hard bounces from temporary soft bounces and recommends removing addresses that hard-bounce. A rise in temporary failures at one provider deserves attention even if the platform eventually records most messages as delivered.

Save the exact SMTP response and a few representative message IDs. “Email going to spam” is too broad a support request; a dated example, recipient domain, headers, and rejection text give your provider something concrete to investigate.

Step 3: Verify authentication on messages that actually went out

A DNS record that looks correct in a setup screen does not prove each message passed authentication. Send a message through the same platform, From address, and workflow as the affected campaign. Inspect its full headers at a receiving mailbox, including Authentication-Results.

Check three things:

  • SPF: Does the sending server pass the receiving provider’s check for the envelope-sender domain?
  • DKIM: Is the message signed, and does the signature pass using a domain you control?
  • DMARC: Does at least one passing SPF or DKIM domain align with the domain recipients see in the From address?

Alignment is the detail marketers often miss. A platform’s SPF check can pass for its own domain while DMARC fails for your brand’s From domain. Likewise, a valid DKIM signature from an unrelated domain may not establish alignment for your message. Review each service that sends on your behalf—campaign platform, CRM, ecommerce system, and transactional sender—rather than assuming one successful test covers them all.

Gmail’s sender guidelines require SPF or DKIM for all senders to personal Gmail accounts, and SPF, DKIM, and DMARC for senders of roughly 5,000 or more messages a day. They also set requirements for sending infrastructure and, for applicable marketing mail, unsubscribing. Passing authentication is essential, but it isn’t an inbox-placement guarantee.

If checks fail, fix the underlying setup before changing creative. Confirm that DNS records are published for the intended domain, the platform is signing with the intended DKIM domain, and the actual From address matches the configuration. After a platform migration, test both old and new sending paths; an abandoned automation can keep sending through an unconfigured service.

Step 4: Trace bounces and complaints back to the list

Once authentication is sound, ask who received the troubled send and how those addresses entered the list. Compare recent subscribers with older subscribers, individual signup forms, imports, event leads, and reactivation segments. Look for a spike in invalid addresses from one source or complaints concentrated in one segment.

A list-quality problem rarely improves because you remove addresses that bounced yesterday and send the same message to the rest tomorrow. You need to stop the source of bad addresses, suppress permanent bounces and complainers, and check that unsubscribe requests flow into every system that can send marketing mail.

Pay attention to expectation as well as permission. Someone who signed up for a product receipt may not expect a weekly promotion. Someone who joined a newsletter two years ago may no longer recognize its sender name. Check the signup promise, time since the last send, message frequency, and whether the From name clearly identifies your business. For riskier dormant segments, stop sending while you review consent and engagement rather than using the full list to test a fix.

Complaint data needs careful reading. Gmail’s Postmaster Tools dashboards show user-reported spam rates, authentication, and delivery errors for mail to personal Gmail accounts, but the data is not real-time and may be limited at low volume. Google also notes that a surprisingly low spam rate can occur when messages are already being filtered out of inboxes: fewer recipients have the chance to mark them as spam. A zero-looking complaint metric is not an all-clear.

For Yahoo recipients, check that your email platform processes complaint feedback. Yahoo’s Complaint Feedback Loop provides reports for enrolled DKIM-signed mail so senders can suppress recipients who mark a message as spam. Ask your platform whether it handles enrollment and suppression for your sending domain; don’t assume the absence of complaints in a campaign report means none occurred.

Step 5: Investigate reputation after ruling out the obvious failures

If messages pass authentication, bounce patterns look normal, and the list source checks out, examine sending history. Sender reputation reflects how mailbox providers have experienced mail from a domain or IP over time. A sudden volume increase, repeated complaints, or a long-idle list can matter even when a single campaign contains nothing unusual.

Compare the affected period with changes in volume and frequency. Did a seasonal promotion multiply daily sends? Did several teams start using the same domain? Did marketing mail move to a new provider or IP? Look at provider-specific diagnostics and error text rather than treating a blocklist lookup as a universal reputation score.

Google advises senders to keep Postmaster Tools spam rates below 0.10% and avoid reaching 0.30% or higher. For Outlook and Microsoft 365 recipients, filtering can also reflect reputation, message content, or a recipient organization’s rules; Microsoft’s anti-spam troubleshooting guidance points administrators to headers and message trace to distinguish those causes. If only one company’s employees report junk-folder placement, ask its mail administrator to examine a sample before declaring a widespread sender-reputation problem.

Content belongs in this investigation, but it should not be the default explanation. If the problem began with one template, inspect its links, attachments, From name, and rendering. If every template declined after a large send to an old segment, changing a few words in the subject line is unlikely to address the cause.

Step 6: Make one controlled change, then watch the right signals

Match the remedy to the evidence. Repair authentication failures and retest the actual sending path. Stop sends to a questionable segment while you investigate acquisition and consent. If a provider is delaying mail during a volume spike, reduce and steady the rate rather than repeatedly pushing the same volume through. If one template is implicated, compare a revised version with a similar audience while keeping the sending domain and list source consistent.

Write down the change and its date. Then compare the next sends by provider and segment: SMTP errors, delivery delays, hard bounces, complaints, unsubscribes, and clicks. Check placement using real recipient reports where possible, but don’t treat a handful of test inboxes as a measurement of your entire audience. Allow time for provider dashboards to update and for reputation signals to respond to sustained improvements.

The useful question is not “How do we get out of spam?” It is “Which messages, to which recipients, started failing at which stage?” Once you can answer that, the next action is usually much less mysterious.