Why your emails land in spam in India (and how to fix it)

Indian mailbox providers, the 5 things that kill Indian deliverability, and a 15-minute audit checklist. SPF, DKIM, DMARC, IP reputation, complaint rate.

Why your emails land in spam in India (and how to fix it)

When an Indian marketer says "our emails are going to spam," they are usually right. Across the campaigns we onboard at LoopNow, the average inbox placement rate on the first send is around 71%. Within four weeks of fixing the five issues below, it climbs to 96-98% across Gmail India, Outlook.com, Zoho Mail, Rediffmail, Yahoo India, and Yandex. This post explains each of the five issues, in order of how often we see them, and exactly what we do about them.

The Indian inbox landscape in 2026

Most Indian marketers assume Gmail is the only mailbox provider that matters. That is wrong. The realistic split for a typical Indian SMB mailing list is roughly:

  • Gmail India (google.com, google.co.in) — about 55-65% of the list, depending on the audience.[1]
  • Outlook / Hotmail / Live / MSN — about 8-12%, mostly enterprise recipients on Microsoft 365.
  • Zoho Mail (zoho.com) — about 4-7%. Heavy in the SMB and developer segments.
  • Yahoo India (yahoo.co.in, ymail.com, rocketmail.com) — about 4-6%.
  • Rediffmail — about 1-2%. Still surprisingly sticky in the 40+ segment.
  • Yandex — less than 1%, but it rejects Indian marketing traffic aggressively.
  • Corporate Exchange / Office 365 / on-prem — 15-25% of B2B lists.

India-specific benchmark data for open and click rates varies by source (GetResponse reports 25.84% open / 8.22% CTR for India[2]; XYZ Lab reports ~16.8% open / 2.0–2.4% CTR[3]; StateGlobe reports 92.5% deliverability and 23.5–24.3% open rate[4]). The wide spread reflects differences in methodology, MPP inflation, and industry mix. Use click rate, not open rate, as the more reliable engagement metric in India.

The five issues below are the reasons your emails land in spam across all of these providers, not just one of them.

Kill #1: no SPF, DKIM, or DMARC

This is the single most common reason Indian email programs fail. The technical setup is straightforward, but a lot of teams skip it because they assume their ESP "handles it." It does not. You have to publish DNS records on the domain you are sending from.

SPF (Sender Policy Framework)

SPF is a DNS TXT record that says which IP addresses are allowed to send email for your domain. If you are sending from mail.yourcompany.in through AWS SES, your SPF record looks like:

v=spf1 include:amazonses.com -all

The -all is critical. It says "reject everything else." If you use ~all (soft fail), mailbox providers treat you less seriously. Test your record with dig TXT yourcompany.in or with the free MXToolbox SPF checker.

DKIM (DomainKeys Identified Mail)

DKIM is a cryptographic signature added to every outgoing email. The mailbox provider verifies the signature against a public key published in your DNS. LoopNow rotates DKIM keys every 90 days by default. A typical DKIM record looks like:

loopnow1._domainkey.yourcompany.in. 300 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSq..."

If you do not have a DKIM record, your email is unsigned. Unsigned email is treated with suspicion by every major provider.

DMARC (Domain-based Message Authentication, Reporting, and Conformance)

DMARC ties SPF and DKIM together and tells mailbox providers what to do when an email fails both checks. A minimum-viable DMARC record:

_dmarc.yourcompany.in. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@yourcompany.in"

Start with p=none (monitoring only). Once you have a week of clean reports, move to p=quarantine (10% of failing mail goes to spam), then p=reject (100% rejected) once you are confident. Gmail and Yahoo India require DMARC for bulk senders as of February 2024 — if you send more than 5,000 emails a day to Gmail accounts and do not have a DMARC record, you will be rejected outright.[5][6]

LoopNow's defaults: SPF, DKIM, and DMARC are auto-configured when you add a sending domain. We publish the records for you, walk you through the DNS change, and verify propagation within 24 hours.

Kill #2: sending from a blacklisted IP range

This is the silent killer. You have a perfectly configured domain, but your ESP routes your mail through an IP address that has been on a Spamhaus, Spamcop, or SORBS blocklist for the last three years because a different customer was spamming from it two IPs over. You never know until your open rates drop to 4% and your customers start complaining.

Two things to check:

  1. The IP your email is actually coming from. Send a test email to a Gmail account you control, open the original, and look for Received: from. The IP will be visible. Run it through Spamhaus and MXToolbox's blacklist checker.
  2. The reputation of that IP's neighbours. A common ESP pattern is to allocate blocks of 16 or 32 IPs to a single customer. If you are in a /24 with a known spammer, you inherit their reputation by association. Look up the entire range on Spamhaus's CSS (Composite Spam Source) database.

The fix is either to (a) ask your ESP for a fresh IP, or (b) move to an ESP that has dedicated sending IP ranges for India with monitored reputation.

LoopNow's defaults: every paid plan gets a dedicated sending domain with a fresh, pre-warmed IP in an AWS Mumbai range. We monitor the IP's reputation daily against 30+ blocklists, and we rotate the IP automatically if it ever gets listed. There is no shared-IP risk by design.

Kill #3: shared IPs with bad neighbours

Even if your own practices are clean, a shared IP pool is a shared reputation. If 200 other senders are using the same ESP's IP pool, and three of them are sending unsolicited bulk mail, the entire pool takes the hit. Gmail's 2024 bulk sender rules made this much more aggressive: a single high-complaint sender in your IP pool can now drag your placement down within hours.

The mitigation is dedicated IPs. The problem with dedicated IPs is that they need to be warmed up — you cannot start sending 100,000 emails a day on a brand-new IP. Gmail interprets sudden volume spikes on a fresh IP as a classic spam pattern.

A standard warmup schedule for a new dedicated IP looks like:

  • Day 1-2: 50 emails (your most engaged subscribers only)
  • Day 3-5: 200, 500, 1,000
  • Day 6-14: 1,000 → 5,000 in stepped increments
  • Day 15-30: 5,000 → 50,000
  • Day 30+: full volume

The engagement profile of the recipients matters as much as the count. If the first 50 emails go to subscribers who have not opened in 90 days, even 50 is too many. Warmup should ramp with your most engaged segment first.

LoopNow's defaults: every new sending domain gets a 30-day warmup schedule automatically generated, with engagement-gated ramp. We start with your top 10% most active subscribers and grow only if the engagement metrics hold.

Kill #4: missing List-Unsubscribe

Gmail and Yahoo India both require a working List-Unsubscribe header on every bulk email as of February 2024.[5][6] The header has two forms: a one-click URL (a POST endpoint Gmail calls when the user clicks "Unsubscribe") and a mailto: fallback. Both should be present. Most homegrown PHP mailers and many older ESPs do not add this header by default.

What the header looks like in a raw email:

List-Unsubscribe: <https://loopnow.in/unsubscribe?token=abc123>, <mailto:unsubscribe@loopnow.in?subject=unsub-abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

If you do not have this header, Gmail's bulk-sender filter will start applying additional reputation throttles. The effect is not "you go to spam" exactly — it is more "your open rates halve within 48 hours." Which is functionally the same thing for a marketer.

Beyond Gmail's requirement, having a one-click unsubscribe is also a DPDP Section 6 requirement — consent must be "withdrawable as easily as it was given." If a subscriber cannot unsubscribe in one click, you are not compliant.

LoopNow's defaults: every email we send — campaign, automation, transactional — has both the List-Unsubscribe URL header and the List-Unsubscribe-Post one-click header. There is no setting to disable this. If you do not want one-click unsubscribe, LoopNow is not the right platform for you.

Kill #5: complaint rate > 0.3%

This is the metric that matters most, and the one most teams do not track. The complaint rate is the percentage of recipients who mark your email as spam. Gmail's stated threshold is 0.3% — above that, your domain or IP starts getting throttled, and above 0.5% you can get bulk-sender-flagged.[7] Yahoo India is similar. Outlook is slightly more lenient at 0.5% but enforces it more strictly once tripped.

What drives complaint rate up:

  1. Frequency. Sending daily when subscribers signed up for weekly.
  2. Misleading subject lines. Anything that smells like a personal message but is a marketing email.
  3. Stale lists. Subscribers who have not engaged in 6-12 months are far more likely to mark you as spam than to find the unsubscribe link.
  4. No easy way to opt down. A subscriber who wants "fewer emails" but only sees "unsubscribe from everything" will often mark as spam instead.
  5. Unexpected content. The subscriber signed up for "product updates" and you start sending them third-party offers.

The fix is mostly list hygiene:

  • Sunset policy. Subscribers with no opens or clicks in 6 months get a "still interested?" re-engagement email. If they do not engage in 14 days, they are moved to a non-sending list.
  • Preference centre. Let subscribers pick topic and frequency, not just "on / off."
  • Sunset before you acquire. Cleaning 30% of an unengaged list will raise your open rate and lower your complaint rate. Both are good.
LoopNow's defaults: every workspace ships with a sunset automation template (3-email re-engagement, 14-day window, then suppress). We expose complaint-rate per campaign in real time, with a 0.3% threshold line drawn on the dashboard. If a campaign trends toward the threshold, the next send is auto-paused and you get an email.

How LoopNow handles each of these

To recap, the five things that kill Indian email deliverability, and what we do about each:

IssueWhat most teams doWhat LoopNow does by default
SPF / DKIM / DMARC Skip it, hope the ESP handles it Auto-publish DNS records, verify propagation, walk you through it
Blacklisted IP ranges Find out via a customer's complaint, then ask for a new IP Dedicated fresh IPs in AWS Mumbai ranges, monitored daily against 30+ blocklists, auto-rotated
Shared IP neighbours Accept the risk as a "cost of being on a shared platform" Dedicated sending domain + dedicated IP per workspace, no shared pools for paid plans
Missing List-Unsubscribe Forget the header, or add it inconsistently Hard-coded on every send, campaign and transactional, no setting to disable
Complaint rate > 0.3% Notice when open rates drop 6 weeks later Real-time complaint-rate monitoring per campaign, 0.3% auto-pause threshold, sunset automation template

The 15-minute deliverability audit checklist

Run this on your current program before you switch ESPs. If you fail more than two of these, the fix is probably the platform, not the practice.

  1. SPF: Run dig TXT yourdomain.in — does it return a record starting with v=spf1?
  2. DKIM: Run dig TXT selector._domainkey.yourdomain.in — does it return a record starting with v=DKIM1? (The selector is provided by your ESP.)
  3. DMARC: Run dig TXT _dmarc.yourdomain.in — does it return a record starting with v=DMARC1?
  4. Blacklist: Send a test email to a Gmail account you control, get the sending IP, run it through MXToolbox. Is it on any list?
  5. List-Unsubscribe: Send a test email to a Gmail account. Open the original. Is there a List-Unsubscribe: header? Is there a List-Unsubscribe-Post: List-Unsubscribe=One-Click header?
  6. Complaint rate: Check your ESP's reporting. Is it under 0.3% per campaign over the last 90 days?
  7. Sunset policy: Do you have an automation that suppresses subscribers with no engagement in 6+ months?
  8. Preference centre: When a subscriber clicks unsubscribe, do they see topic and frequency options, or just an "unsubscribe from everything" button?

If you are failing items 1-3 or 5, switch ESPs — these should be defaults, not configuration you have to remember. Items 4, 6, 7, 8 are operational and can be fixed in a week.

Written by the LoopNow deliverability team.
We have onboarded 1,200+ Indian senders since 2024. Average inbox placement after 30 days: 97.3%. Average before: 71%. Reach the team at deliverability@loopnow.in.

Related reading: Sending emails in 12 Indian languages · Migrating from Mailchimp · Trust Center.

References

  1. Statcounter Global Stats, “Email Client Market Share in India” (Gmail ~62% of opens, Outlook ~10%, Apple Mail ~8%, Yahoo ~3%) — https://gs.statcounter.com/email-client-market-share/all/india
  2. GetResponse, “Email Marketing Benchmarks & Statistics” (2024 India figures: 25.84% open, 8.22% CTR) — https://www.getresponse.com/resources/reports/email-marketing-benchmarks
  3. XYZ Lab, “Email Marketing Benchmarks in India” (all-industry: ~16.8% open, 2.0–2.4% CTR) — https://xyzlab.com/email-marketing/benchmarks/india/
  4. StateGlobe, “Email Deliverability Statistics in India (2026)” (92.5% deliverability, 23.5–24.3% open rate) — https://data.stateglobe.com/india/email-deliverability-statistics
  5. Google, “Email sender guidelines FAQ” (February 2024 bulk-sender rules) — https://support.google.com/mail/answer/81126
  6. Yahoo, “Sender Best Practices” (2024 bulk-sender requirements) — https://senders.yahooinc.com/best-practices/
  7. Mailchimp, “All About Spam Traps” (industry consensus on 0.3% complaint-rate threshold; also referenced in Gmail Postmaster Tools documentation) — https://mailchimp.com/help/about-spam-traps/ and https://support.google.com/mail/answer/6227174

The 71% / 96–98% inbox-placement figures cited in the introduction are LoopNow’s own measurements across the campaigns we have onboarded since 2024 and are not from a third-party benchmark. Industry-wide Indian deliverability sits around 92–93% on average per StateGlobe’s 2026 estimate.[4]