Why emails go to spam
Work through the four causes of inbox placement failure in order: authentication, list quality, content, and sending reputation.
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 and Publishing your DNS records 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, Why an address was suppressed, and 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 and Email sender guidelines.
Reputation comes last
Reputation accumulates from the first three over time rather than from any single message. See IP pools and Warming up a new domain for how that accumulation works and how to manage it deliberately.
Measure instead of guessing
GET /v1/analytics/external-reputation returns Gmail's own view of your sending domains: the latest Gmail Postmaster spam-rate observation, per verified domain. See Analytics 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:
{
"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 |
