How do spam filters work?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

When an email arrives at someone's inbox, the receiving mail server doesn't just glance at the subject line and decide. It runs the message through a filtering engine that weighs dozens of signals at once. Think of it less like a checklist and more like a credit score. No single factor makes or breaks the decision, but enough bad signals together push an email into spam.

Here's roughly what happens, in order, from the moment you hit send.

Step one: sender identity checks. Before the message body is even evaluated, the filter checks whether your sending infrastructure can be trusted. It verifies your SPF record, your DKIM signature, and your DMARC policy. Failing these doesn't automatically mean spam, but it removes the trust signals that help you pass everything else. Most modern filters treat missing authentication as a significant negative weight.

Step two: reputation lookups. The filter checks your sending IP and domain against reputation databases and blocklists like Spamhaus. It also checks internal reputation data: how have recipients at that mailbox provider previously interacted with mail from your domain or IP? Gmail, Outlook, and Yahoo Mail all maintain their own internal reputation models, and they don't publish exactly how they weight things. That's intentional.

Step three: content and structure analysis. The filter looks at the message itself. Not just for "spam words" (that era is mostly over) but for structural patterns: image-to-text ratio, link quality, HTML formatting, whether there's a working unsubscribe link, whether the From address matches the domain sending the message. It's looking for signals that match known spam patterns, including patterns it has learned from previous messages.

Step four: engagement signals. This is where modern filtering really diverges from older models. Filters factor in how recipients have responded to your previous messages. High open rates and replies are positive signals. High delete-without-open rates, spam complaints, and hitting spam traps are strong negative ones. Gmail in particular is known to weight engagement heavily when deciding whether to deliver to the inbox, the Promotions tab, or spam.

Step five: machine learning layers. Most major filters now run ML models that are trained on millions of messages. These models don't just look at individual signals in isolation. They look at combinations, trends, and context. A word like "free" in a message from a trusted nonprofit donor database is treated very differently from the same word in a message from a new IP with no history. The filter has seen both patterns before.

One thing worth knowing: filters aren't universal. Each mailbox provider filters differently. An email that passes Gmail's filter might still land in Outlook's spam folder because they weight signals differently and train on different data. That's why deliverability problems are often provider-specific.

Trying to "game" spam filters by tweaking word choice or hiding certain phrases rarely works long-term. The filters have seen every trick. What actually moves the needle is fixing the fundamentals: proper authentication, a healthy sending reputation, a clean list, and content that recipients genuinely want to open.

So if you want to see how your current setup scores against common filter signals, you can run your domain through our free Email Header Analyzer or check whether you're on any major blocklists with our Blocklist Checker. Or if something's actively broken, our SOS hotline is free.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Paste your sending details above and get a ranked list of what to fix first.

I just read about how spam filters evaluate email on the Email Almanac. I want to understand how my specific sending setup would be scored right now. Can you walk me through the most likely filtering weak points based on my details below, and tell me: 1. Which signal layer is most likely causing problems (authentication, reputation, content, engagement, or ML patterns) 2. What I should fix first and why 3. How to verify each fix is actually working 4. Which mailbox providers I should check separately (Gmail, Outlook, Yahoo) My details (fill in what applies): - Email platform/ESP: e.g. Mailchimp, SendGrid, Postmark - Sending domain(s): your domain - Sending volume: e.g. 5,000/month - IP type: shared or dedicated - Authentication in place: SPF/DKIM/DMARC, yes/no/partial - Currently on any blocklists: yes/no/unsure - Recent spam complaint rate: e.g. 0.08% - Recent bounce rate: e.g. 2% - Affected providers: Gmail / Outlook / Yahoo / all - Any recent changes: new IP, volume spike, new list segment, content change - Google Postmaster domain reputation: high/medium/low/bad/not set up

Edit the yellow boxes, then send to the AI of your choice.