Why Postmaster Tools#
Gmail handles ~30% of consumer email globally and ~50% of business email. Their reputation engine is the most influential signal in your deliverability score. Google Postmaster Tools (free) shows:
| Signal |
What it tells you |
| Spam rate |
% of your mail Gmail users marked as Spam |
| IP reputation |
Google's verdict on your sending IPs (High / Medium / Low / Bad) |
| Domain reputation |
Google's verdict on your sending domain (same scale) |
| Authentication |
Per-day SPF / DKIM / DMARC pass rates |
| Encryption |
TLS adoption % on outbound mail |
| Delivery errors |
Rate-limit / temp-fail / permanent-fail breakdowns |
| Feedback loop |
Spam-trap hits (rare, severe signal) |
Sign up + verify your domain#
Step 1: Go to postmaster.google.com#
URL: https://postmaster.google.com
Click Get started → Google account login.
Step 2: Add your sending domain#
Click + Add domain. Enter the domain you send from (e.g. mail.example.com).
Google shows a TXT record to add at your DNS host. Add it; click Verify.
Within ~5 minutes (often immediate), domain verified.
Step 3: Wait for data#
Google starts collecting Gmail-side signals from the moment you verify. Dashboard becomes populated within 24-48 hours.
If sends are <1,000/day to Gmail addresses, Google may not show meaningful data — too low a sample size. The threshold is ~1,000 Gmail recipients per day before Postmaster Tools generates meaningful panels.
The 5 panels to check daily#
Panel 1: Spam rate#
The most important signal. Daily plot of % users marked as Spam.
| Spam rate |
Verdict |
| <0.1% |
Excellent — well below Google's threshold |
| 0.1-0.3% |
Healthy |
| 0.3-1% |
Warning — investigate this week |
| >1% |
Critical — Gmail starts throttling immediately |
Action on spike: pause sending; audit content + list; investigate consent. Recovery cycle = 2-4 weeks typically.
Panel 2: IP reputation#
Per-IP rating, one entry per IP you send from.
| Rating |
What it means |
| High |
Most reliable; full inbox delivery |
| Medium |
Most mail inboxes; some routed to Junk |
| Low |
Significant Junk routing |
| Bad |
Most mail to Junk; possibly blocked |
If you see Bad on a fresh IP, expected during warmup — should climb to Medium → High over 2-4 weeks. If Bad on a mature IP, something broke — audit recent campaigns + bounce log.
Panel 3: Domain reputation#
Aggregate across all IPs that send from this domain. Slower to change than IP reputation; reflects long-term pattern.
Panel 4: Authentication#
Per-day SPF/DKIM/DMARC pass rates. Should be >99%. <95% means something's broken — re-verify domain in AcelleMail:

Each chip should show Green. Click Verify domain if any are Red.
Panel 5: Delivery errors#
Breakdown of bounces by error type. Useful for comparing Postmaster Tools' Gmail-specific view with AcelleMail's all-recipient bounce log:

If Postmaster shows 5% Gmail-specific errors but AcelleMail shows 1% overall, the issue is Gmail-side specifically — Gmail rate-limiting, Gmail reputation hit, etc.
Daily-check action matrix#
| Postmaster signal |
AcelleMail action |
| Spam rate jumps from 0.05% → 0.15% |
Audit yesterday's campaign content; pause if not obvious; check signup consent |
| IP reputation flips from High → Medium |
Hold current volume; investigate possible reputation drop sources |
| IP reputation hits Bad |
Pause that server; ramp-down volume; investigate root cause |
| Domain reputation drops |
Slower-moving — usually weeks of degraded sends; bigger investigation needed |
| Authentication pass rate drops to <95% |
Re-verify domain in AcelleMail; check DNS records |
| Spam-trap hit count >0 |
List source has dead addresses or purchased data — audit imports |
| Delivery error spike (4.x retry) |
Greylisting — wait 30 min; AcelleMail handles retry |
Postmaster Tools confusion fixes#
| What you see |
What it actually means |
| "No data" panels after Day 7 |
Your Gmail volume too low for meaningful aggregation; or domain not properly verified |
| Spam rate higher than expected even though bounce rate is fine |
Spam rate = users-marked-as-spam (NOT bounce). High spam rate means content/list issue, not deliverability |
| IP reputation Bad despite high engagement |
Your IP is shared with another sender who's getting complaints — request dedicated IP from vendor |
| Domain reputation Bad despite IP reputation High |
Different IPs sending from your domain (one bad actor mixing); audit who else sends from this domain |
| Authentication < 95% |
DKIM signature failing — check DKIM key matches DNS published record |
Advanced: programmatic polling, daily-alert pipelines, and Bad-reputation recovery
Postmaster Tools doesn't have a public API. Workaround: web-scraping or screen-scraping daily.
Scraping pattern:
Use Playwright or Puppeteer + a service account with Postmaster access:
// daily-postmaster-scrape.mjs
import { chromium } from 'playwright';
const b = await chromium.launch();
const ctx = await b.newContext({ storageState: 'postmaster-auth.json' });
const page = await ctx.newPage();
await page.goto('https://postmaster.google.com');
const spamRate = await page.locator('.spam-rate-value').textContent();
const ipRep = await page.locator('.ip-reputation-row .rating-chip').first().textContent();
// ... POST to your monitoring system
Authenticate once interactively (creates postmaster-auth.json); subsequent runs are headless.
Daily-alert pipeline:
postmaster-scrape → metrics-collector → alert-on-threshold-cross
Pipe scraped metrics to Datadog / Grafana / Sentry. Threshold-based alerts:
- Spam rate > 0.2% → page on-call
- IP reputation Bad → page + auto-pause server in AcelleMail
- Auth pass rate < 95% → page
Bad-reputation recovery cycle:
When IP reputation hits Bad:
Day 0: AUTO-PAUSE the affected sending server in AcelleMail
Audit yesterday's campaigns from this server
Identify root cause (content / consent / volume spike)
Day 1: Send small volume (~500) ONLY to engaged-last-7d
Monitor next 24h spam rate / inbox placement
Day 7: If sustained healthy signals, expand to engaged-last-30d at 30% volume
Day 14: Expand to engaged-last-90d at 60%
Day 21: Resume full volume if reputation back to Medium/High
Recovery from Bad takes 3-6 weeks typically. Sometimes irrecoverable — need fresh IP + warmup cycle.
Comparing Gmail-specific vs aggregate:
AcelleMail's bounce log + Postmaster Tools = two views of the same delivery reality. Cross-reference:
# Get AcelleMail's last-24h Gmail-only stats
acelle_gmail_bounces=$(curl -sH "Authorization: Bearer $TOKEN" \
"https://acellemail.com/api/v1/admin/bounces?domain=gmail.com&since=24h" \
| jq '.total')
# Compare with Postmaster Tools delivery error count for same period
postmaster_gmail_errors=$(get_from_postmaster_scrape)
# Significant divergence → investigate
if [ $(( acelle_gmail_bounces / postmaster_gmail_errors )) -gt 3 ]; then
echo "AcelleMail seeing 3x more Gmail bounces than Postmaster reports — audit"
fi
When AcelleMail's count significantly exceeds Postmaster's, your DNS attribution may be broken (mail not getting properly attributed to your domain). Investigate.
Setting up postmaster for sub-domains:
If you send marketing from mail.example.com and transactional from txn.example.com, verify EACH subdomain separately. Per-subdomain reputation = isolated. Helps prevent marketing reputation hits from poisoning transactional delivery.
JMRP (Junk Email Reporting Program) for Outlook is the Microsoft equivalent — separate signup. See Microsoft SNDS walkthrough.
Related articles#