· 6 min read

Transactional email has a structural advantage: recipients asked for it, so they open it, and engagement is the strongest positive signal a mailbox provider has. Teams still manage to end up in spam, and almost always for reasons that have nothing to do with the content.
This guide covers how delivery is actually decided and what to do about each layer. For the broader concept, see the transactional email guide.
Provider dashboards report accepted — the receiving server took the message. That is not the same as it reaching the inbox. A message can be accepted and then filed into spam, and no API response will tell you.
| Term | What it means |
|---|---|
| Accepted | Your provider handed it off successfully |
| Delivered | The receiving server accepted it |
| Inbox placement | It reached the primary inbox — the only one that matters |
| Bounced | Rejected: hard means permanent, soft means temporary |
| Filtered | Accepted, then routed to spam. Usually invisible to you |
The gap between "delivered" and "inbox placement" is where transactional email quietly fails. Which is why the leading indicator to watch is not your delivery rate but your open rate: for transactional email it should be high, and a sudden drop with delivery still at 99% almost always means filtering.
Authentication answers a single question — is this sender allowed to use this domain?
Since 2024, Gmail and Yahoo require all three from bulk senders. Missing or misaligned authentication is the single most common cause of transactional email landing in spam, and it fails silently — nothing errors, mail just stops arriving.
The subtlety that catches people is alignment: SPF and DKIM can both pass while DMARC still fails, because the domain that passed is not the domain in the From header. Full setup in SPF, DKIM & DMARC for transactional email.
Once you are authenticated, providers score you. Reputation attaches to your sending domain, your subdomain and your IP, and it is built from:
Transactional email generates excellent signals on its own. The danger is dilution.
Separate your subdomains. Marketing email is structurally weaker on every metric: lower opens, more complaints, more dead addresses. Send both from the same domain and the scores merge, so a bad campaign week degrades password reset delivery.
mail.yourdomain.com → transactional
news.yourdomain.com → marketing
Each accrues reputation independently. This is the highest-leverage change most teams can make, and it costs one DNS record.
Content matters least for transactional email, because the shape is inherently trustworthy. Still worth avoiding:
Hygiene is where the real work is:
Suppress hard bounces immediately and permanently. A hard bounce means the address does not exist. Sending again is one of the fastest ways to damage a domain. This must be automatic — anything manual will be skipped under load.
Handle soft bounces with limits. Temporary failures deserve retries with backoff, but an address that soft bounces for a week should be treated as dead.
Never let a marketing unsubscribe suppress transactional sends. A user who left your newsletter still needs to reset their password. Keep the lists separate.
Per-dispatch logs with delivery, open, click and bounce events — so a deliverability problem is visible before support tells you.
Get startedA domain with no sending history that suddenly emits thousands of messages looks exactly like a compromised account.
Ramp gradually — start in the tens per day, roughly double every few days while watching bounce and complaint rates, and pause the ramp if either climbs. Send to your most engaged recipients first: early positive signals establish the baseline everything later is judged against.
Transactional email warms naturally, because volume grows with your user base. The risk is migration — moving an existing high volume to a new domain or provider overnight is the scenario that goes wrong.
| Metric | Healthy | Act when |
|---|---|---|
| Delivery rate | Above 99% | Below 98% |
| Hard bounce rate | Under 0.5% | Above 1% |
| Complaint rate | Under 0.05% | Above 0.1% |
| Open rate | High and stable | A sudden drop with delivery unchanged |
| Time to delivery | Seconds | Consistently above a minute |
Alert on rates over a window, not on individual events. One bounce is noise; a bounce rate that triples in an hour is an incident.
Register for feedback loops with the major providers so complaints reach you directly, and check DMARC aggregate reports — they reveal authentication failures you would otherwise never see.
Work in this order, because it goes from cheapest to slowest to fix: