You sent a campaign. Fifty thousand messages left the server in seconds. But between “sent” and “delivered to the inbox” sits an entire filtering system that most marketers only notice when something breaks: open rate tanks, and nobody knows why.
This article walks through exactly how mail providers rule on the fate of each message, not as generic advice like “set up DKIM,” but as the sequence of steps your email actually passes through. Understanding the sequence makes it obvious where to spend time and what to ignore.
From the sending server to the inbox
Every message that hits a Gmail, Mail.ru, or Yandex server goes through four filtering layers. Providers do not publish their full algorithms, but documentation, public talks from their engineers, and years of deliverability testing give a clear enough picture.
The layers run in sequence. Fail layer one and the message never reaches layer two. Pass the first three and fail the fourth, it ends up in spam.
Authentication
SPF, DKIM, DMARC — the identity check
Reputation
Domain, IP, sending history
Content
Text, links, HTML, attachments
Engagement
Opens, clicks, spam complaints, deletions
Layer 1: Authentication — the identity check
The first thing the receiving server does is verify whether the sender has the right to send mail from that domain. Three protocols, three checks. All three are required.
SPF (Sender Policy Framework) is a DNS record where your domain lists the servers authorized to send on its behalf. The receiving server compares the sender's IP against that list. No match — first strike.
DKIM (DomainKeys Identified Mail) is a cryptographic signature in message headers. The sending server signs with a private key; the receiving server verifies using the public key in DNS. A failed signature means the message may have been tampered with in transit.
DMARC (Domain-based Message Authentication, Reporting and Conformance) tells the receiving server what to do when SPF or DKIM fails: do nothing (p=none), quarantine (p=quarantine), or reject (p=reject).
Key fact
Since February 2024, Gmail and Yahoo reject messages from domains without DMARC when the sender ships more than 5,000 messages per day. Mail.ru and Yandex are more lenient for now, but both factor DMARC into their scoring. Setting up all three records takes about half an hour. Not setting them up means losing part of your audience permanently.
Authentication is binary: pass or fail. But passing all three checks is not a guarantee of inbox delivery. It is the entry ticket to layer two.
Layer 2: Sender reputation
If authentication is passport control, reputation is your credit history. Every mail provider keeps a file on every sending domain, updated with every campaign.
Bounce rate
The share of messages that came back because the address does not exist. Above 2% is a warning. Above 5% and the provider concludes you are not maintaining your list — or sourced it the wrong way.
Complaint rate
The share of recipients who hit Spam. Gmail's critical threshold is 0.1%: one complaint per thousand delivered messages. Very small, and not negotiable.
Volume consistency
Yesterday 200 messages, today 50,000. To a filter that looks like a compromised account or a freshly purchased list. Volume spikes hurt reputation even with a clean base.
Domain age and sending history
A domain with three years of good metrics earns more trust than one registered last month. The first weeks of a new domain are always high-scrutiny.
Blocklist appearances
Spamhaus, Barracuda, SURBL, and dozens of others. If your domain or IP is listed, the provider may block messages before even looking at content.
Spam traps deserve a separate mention. Providers recycle long-abandoned addresses and turn them into honeypots. Send to one and it signals you have not cleaned your list in a while. One trap hit can drag down months of good reputation.
Domain reputation is not an abstract metric. It is the set of numbers an algorithm uses to decide where your next message goes. Every campaign sent to a dirty list subtracts from those numbers.
Layer 3: Content filters
Authentication clean, reputation fine. Now the provider examines the message itself. Modern content filters are not blocklists of banned words. They are machine learning models.
Subject line and body text
- ALL CAPS and clusters of exclamation marks
- Trigger phrases: “today only,” “you've won,” “free”
- Subject line that does not match the body
- Text generated from an unedited template
HTML and structure
- Message is a single image with no text
- Broken HTML, invalid markup
- No plain-text version included
- Links to suspicious domains or URL shorteners
Content filters in 2026 do not catch keywords in isolation. They read patterns. The model does not see the word “free” — it sees a combination: all-caps subject, short body, many links, new sending domain. That combination triggers the filter. One word rarely does.
The practical takeaway: do not fear “discount” in a subject line. Fear “DISCOUNT 90% TODAY ONLY!!!” from a domain registered last week with an 8% bounce rate. Context decides everything.
Layer 4: Recipient engagement
This is the most influential layer, and the one marketers focused on technical settings tend to underestimate. Providers do not only watch the sender. They watch the recipient.
Gmail tracks each user's interaction history with each sender individually. Open your messages, click links, move them from Promotions to Primary — Gmail learns this person wants these emails. The next message lands in the inbox more often.
The reverse works just as well. A subscriber who has not opened your last ten messages gets routed to Promotions or spam on the eleventh. Worse, those negative signals affect your overall domain reputation. Ten thousand disengaged subscribers and your deliverability suffers even for the people who actively want your mail.
What counts as an engagement signal
Positive
- Opening the message
- Clicking a link
- Replying to the message
- Moving from spam to inbox
- Adding the sender to contacts
Negative
- Marking as spam
- Deleting without opening
- Ignoring multiple messages in a row
- Unsubscribing
This is why a sunset policy is not optional. A subscriber who has not opened anything in six months is a liability. Every unopened message is a negative signal. Removing that subscriber is an investment in deliverability for everyone else on the list.
How Gmail filters
Gmail runs the most sophisticated filtering system of any major mail provider. Messages pass through TensorFlow models trained on hundreds of billions of messages. Google claims to block 99.9% of spam before it reaches the inbox.
The defining feature is the tab system. A message can land in Primary, Promotions, Social, Updates, or Spam. The real divide is between Primary and Promotions. Promotions is not spam, technically. But open rates there run 2 to 3 times lower than in Primary.
What improves your odds of landing in Primary: high personalization, plain text without heavy HTML, a prior conversation thread, sending to one or two recipients rather than a list. Gmail wants signals that the message resembles personal correspondence, not a marketing template.
Google Postmaster Tools is the only way to see how Gmail scores your domain: domain and IP reputation, percentage of authenticated messages, complaint rate, delivery errors. If you are running campaigns and not checking Postmaster Tools at least weekly, you are flying blind.
Mail.ru and Yandex: where they differ from Gmail
If your audience is in Russia, these two providers are unavoidable. Each has its own quirks.
Mail.ru
Mail.ru weighs IP reputation more heavily than Gmail. On a shared IP, if any neighbor sends spam, you absorb damage. For serious sending volumes to Mail.ru addresses, a dedicated IP is close to mandatory.
Mail.ru provides a Postmaster at postmaster.mail.ru with reputation, delivery stats, and errors. It also runs an FBL (feedback loop): when a subscriber marks your message as spam, you get a notification and can remove them before complaints reach a critical level.
Yandex
Yandex Mail runs its own ML-based anti-spam system with one notable behavior: it factors in recipient activity across the Yandex ecosystem. An active user who opens your messages regularly boosts deliverability. An abandoned mailbox drags it down.
Yandex Postmaster at postoffice.yandex.ru shows delivery stats, complaints, and authentication errors. Less feature-rich than Google Postmaster Tools, but it covers the basics.
General advice: test deliverability on Gmail, Mail.ru, and Yandex separately. A campaign that arrives cleanly at Gmail can reliably land in spam at Mail.ru, because the algorithms differ, the thresholds differ, and even DMARC interpretation is not identical across the three.
What this means in practice: a checklist
Here are the concrete steps that follow from understanding how filtering works.
Validate your list before every send
Dead addresses raise bounce rate. Spam traps destroy reputation. One validation pass before sending removes both risks. This is the single highest-leverage action on the list.
Set up SPF, DKIM, DMARC
Without authentication, your message will not clear layer one. Three DNS records, about half an hour of work. Check with MXToolbox or Google Admin Toolbox.
Watch your complaint rate
Connect Mail.ru FBL, check Google Postmaster Tools. If complaint rate exceeds 0.1%, stop sending and find the cause. Not next week.
Implement a sunset policy
No opens in 90–180 days: send a re-engagement series of two or three messages. No response means remove them. Every inactive subscriber drags down engagement metrics for the whole list.
Warm up new domains and IPs
Start with 200–500 messages per day to your most engaged subscribers. Increase by 30–50% each day. Two to four weeks and you can scale to full volume.
Test deliverability per provider
Keep test mailboxes on Gmail, Mail.ru, and Yandex. Send a test before every large campaign. If any shows the message in spam, do not launch until you know why.
Segment by engagement
Active subscribers get higher-frequency sends; dormant ones fewer, with different subject lines. Gmail tracks open rates per sending domain: a high open rate among active segments improves delivery for everyone.
A mail provider is not the marketer's enemy. It has one job: show users the messages they actually want to read. Every filtering layer serves that goal.
When you understand the filtering logic, you stop fighting the system and start working with it. A clean list, proper authentication, engaged subscribers, and useful content are not demands from the provider. They are what good email looks like from both sides.
The fastest place to start is somewhere you can get a result in five minutes: check the state of your list.
Upload your list to uChecker and see how many addresses are invalid, risky, or sitting in spam traps. 30 free checks to get a real picture.
Validate your list free