---
title: "Why emails go to spam"
description: "Work through the four causes of inbox placement failure in order: authentication, list quality, content, and sending reputation."
---

> **For AI agents:** the complete documentation index is at [llms.txt](/docs/llms.txt). Append `.md` to any page URL for its markdown version.

Placement is decided by the receiving network, not by Mailfully, and four things drive it: authentication, list quality, content, and sending reputation. Work them in order, because each one gates the next. A domain that fails authentication never gets its content or its reputation judged at all.

## Start with authentication

DKIM signs mail for your sending domain, and SPF authorizes the MAIL FROM subdomain that sits beneath it. Domain verification is what confirms both records actually resolve. A domain with status `verified` already has both configured, which is the floor every sender starts from before anything else on this page can matter. See [Verify a domain](/guides/verify-a-domain) and [Publishing your DNS records](/dns/overview) for the records involved.

## Then list quality

Hard bounces and spam complaints are the strongest negative signal a receiving network reads, and on Mailfully they are also an account-survival issue, separate from how any single provider treats your mail. Two thresholds decide it:

| Metric | Threshold | Definition |
|---|---|---|
| Complaint rate | **0.07%** | Spam complaints ÷ delivered emails |
| Bounce rate | **4%** | Hard (permanent) bounces ÷ accepted emails |

Cross either one and Mailfully may suspend the account immediately and without notice. Soft bounces do not count toward the bounce rate; only permanent failures do.

These numbers are stricter than the 0.3% Gmail complaint figure further down this page, and the two measure different things. Mailfully's thresholds decide whether your account keeps sending at all. Gmail's decides whether Gmail keeps trusting your domain. Mailfully's is the one that binds first. See [Policies](/concepts/policies), [Why an address was suppressed](/deliverability/suppression-causes), and [Suppressions](/guides/suppressions).

## Content comes third

Google describes Gmail's filters as AI-driven, weighing signals such as the sending IP's characteristics, the domain and its subdomains, whether a bulk sender is authenticated, and what recipients report. Its sender guidelines call out the display name: it should identify the sender rather than use emoji or non-standard characters to imitate graphics. See Google's [overview of Gmail's spam filters](https://workspace.google.com/blog/identity-and-security/an-overview-of-gmails-spam-filters) and [Email sender guidelines](https://support.google.com/a/answer/81126).

## Reputation comes last

Reputation accumulates from the first three over time rather than from any single message. See [IP pools](/concepts/ip-pools) and [Warming up a new domain](/deliverability/warming-up) for how that accumulation works and how to manage it deliberately.

## Measure instead of guessing

[`GET /v1/analytics/external-reputation`](/api-reference/analytics/external-reputation) returns Gmail's own view of your sending domains: the latest Gmail Postmaster spam-rate observation, per verified domain. See [Analytics](/guides/analytics#external-reputation) for the full endpoint.

Google publishes 0.3% as the complaint-rate ceiling it enforces through Postmaster Tools. The field the endpoint returns, `gmailSpamRate`, is a **fraction, not a percentage**, so the two ceilings on this page line up like this:

| Ceiling | As a percentage | As the fraction the API returns |
|---|---|---|
| Google's Postmaster ceiling | 0.3% | `0.003` |
| Mailfully's complaint-rate threshold | 0.07% | `0.0007` |

A sample response:

```json
{
  "data": {
    "domains": [
      { "domain": "mail.acme.com", "gmailSpamRate": 0.0007, "observedAt": "2026-07-06T09:00:00.000Z" }
    ],
    "worstGmailSpamRate": 0.0007
  }
}
```

`gmailSpamRate: 0.0007` reads as 0.07%, exactly Mailfully's own threshold and comfortably inside Google's 0.3% ceiling. Read the field as a fraction before comparing it to any percentage figure quoted elsewhere on this page, or you'll misjudge the margin by a factor of a hundred.

## What Mailfully does for you

| Responsibility | Platform | You |
|---|---|---|
| DKIM signing and SPF for the MAIL FROM subdomain | Yes | |
| Automatic suppression of hard bounces and complaints | Yes | |
| Warm-up pool placement for new accounts | Yes | |
| Publishing the DMARC record | | Yes |
| Keeping the list opt-in and current | | Yes |
| Writing content that doesn't trip the structural signals above | | Yes |
