Best practices for email. Sourced, dated, and short enough to use.
How mailbox providers actually decide where your email goes, what the research has measured, and what to do about it — every claim linked to the page it came from.
Email best practices. Researched guides to getting email read, not just delivered.
18 guides

Email basics
What is an email service provider? Hosting vs sending vs API
What an email service provider is, how it differs from email hosting and an email API, what a small business needs, and DNS records in five minutes.
12 min readUpdated
email service provider what is an esp email hosting vs email service provider what is email hosting how to add a dns record for email
Deliverability
Emails not being delivered? Trace a missing message step by step
Why emails are not being delivered, traced one message at a time: was it sent, accepted, bounced or suppressed, or filed in spam, and what to do next.
11 min readUpdated
emails not being delivered email not received why are my emails not being received customer did not receive email email delivery troubleshooting
Deliverability
Is your domain on an email blocklist? How to check and get delisted
How to tell if your domain or IP is on an email blocklist, when a listing matters, and how each major list, from Spamhaus to SpamCop, delists.
12 min readUpdated
email blocklist email blacklist check is my domain blacklisted how to get delisted from spamhaus dnsbl lookup
AI and agents
What is MCP? How an MCP server differs from an API
What the Model Context Protocol is, how an MCP server differs from a REST API, what changed in 2026-07-28, and a minimal server to copy.
17 min readUpdated
what is mcp model context protocol what is an mcp server mcp vs api mcp server vs api
Lifecycle email
Marketing email: types, rules and examples
What marketing email is, how to tell it from transactional mail, types with shop and SaaS examples, and the US, EU, UK and Canadian rules, cited.
13 min readUpdated
marketing email email marketing emails emails for email marketing types of marketing emails marketing email examples marketing email rules marketing email consent wording is an abandoned cart email marketing
Email setup
Contact email: which address to publish, and where
Which contact email to publish: one address per job (hello@, support@, security@), where each goes, mailboxes vs aliases, auto-replies and spam.
10 min readUpdated
contact email contact emails business email address contact us email address hello@ vs info@
How email works
What is SMTP? How email actually gets delivered
What SMTP is and how email gets delivered: the four hops, ports 25, 465 and 587, reply codes like 550, and MTA-STS vs DANE for mail servers.
18 min readUpdated
smtp what is smtp smtp port smtp server smtp relay smtp error 550 smtp reply codes smtp vs imap smtp vs pop3 mta-sts vs dane
Lifecycle email
Welcome email best practices: how to write one that gets read
Welcome email best practices: what to write, how to protect the signup form from bots, example emails and sequences, and how to measure without opens.
15 min readUpdated
welcome email best practices how to write a welcome email welcome email sequence welcome email subject lines welcome email examples
Deliverability
Email list cleaning: how to sunset inactive subscribers
Define inactive subscribers when Apple inflates opens, spot scanner clicks, run a re-engagement flow, and sunset the rest without blocking their receipts.
11 min readUpdated
email list cleaning inactive subscribers sunset policy email how to clean your email list re-engagement email campaign apple mail privacy protection opens security scanner email clicks suppression vs deletion gdpr
Deliverability
How to set up one-click unsubscribe (RFC 8058)
Add the List-Unsubscribe and List-Unsubscribe-Post headers, sign both with DKIM and answer the POST: exact headers, a tested Node handler and curl checks.
17 min readUpdated
one-click unsubscribe list-unsubscribe-post rfc 8058 list-unsubscribe header list-unsubscribe=one-click gmail one-click unsubscribe requirement
Deliverability
How to lower your email spam complaint rate
What a good email spam complaint rate is, how Gmail and Yahoo measure it, how to read it on a small list, and the steps that bring it down.
12 min readUpdated
email spam complaint rate spam complaint rate gmail spam rate postmaster tools spam rate good spam complaint rate how to reduce spam complaints
Deliverability
How to get out of the Gmail Promotions tab
Why Gmail files your email under Promotions, what it costs you, and the steps that move mail toward Primary, with an example welcome-email line to copy.
11 min readUpdated
gmail promotions tab how to get out of promotions tab move emails from promotions to primary why are my emails going to promotions gmail primary tab
Deliverability
Why are my emails going to spam? How to fix it
Why emails land in spam or junk: read the headers to see which problem you have, then the fixes Gmail, Outlook and Yahoo document, in order.
12 min readUpdated
why are my emails going to spam emails going to spam how to stop emails going to spam why do my emails go to junk emails going to spam in gmail
Deliverability
Gmail bulk sender requirements: the full checklist
What every Gmail sender must do, what bulk senders add, and Yahoo and Outlook.com side by side: SPF, DKIM, DMARC, unsubscribe, spam rate and error codes.
14 min readUpdated
gmail bulk sender requirements yahoo sender requirements gmail sender guidelines outlook high volume sender requirements bulk sender requirements checklist
Deliverability
Email domain warm up: how to warm a new domain or IP address
How to warm up a new domain or IP: what Gmail, Microsoft, Yahoo and M3AAWG publish, schedules from 300 contacts to 50,000 a day, and when to slow down.
13 min readUpdated
email domain warm up ip warmup how to warm up a new domain ip warming schedule dedicated ip warm up domain warming
Deliverability
Google Postmaster Tools, explained: every dashboard and what to do
What Google Postmaster Tools shows, how to set it up, what each v2 dashboard means, how to query its API, and what to use when the charts stay empty.
15 min readUpdated
google postmaster tools postmaster tools gmail postmaster tools postmaster tools spam rate google postmaster tools v2 postmaster tools compliance status postmaster tools api
Authentication
DMARC p=reject: how to move from p=none safely
Move DMARC from p=none to p=reject without losing mail: read aggregate reports, align every sender with DKIM, quarantine, then reject, and roll back fast.
18 min readUpdated
dmarc p=reject dmarc policy dmarc p=none to p=reject dmarc quarantine vs reject dmarc rollout dmarc pct tag
Deliverability
Should you use an email subdomain for marketing?
When a marketing subdomain like news.example.com is worth it, by volume: what it separates from your domain, what it shares, and the DMARC and DNS records.
13 min readUpdated
email subdomain for marketing marketing email subdomain send marketing email from a subdomain subdomain for email marketing subdomain sender reputation dmarc subdomain policy
Send from your stack. A complete sample for the language you write in, from key to delivered message.
12 guides
- Node.jsJavaScript · TypeScriptSend email from Node.js with the fetch it already has: one POST with four headers, an id back, and every delivery event on a webhook.
- Next.jsReact · TypeScriptSend email from Next.js in a route handler or a server action: one fetch, the key read on the server, an id back for every message.
- PythonPythonSend email from Python over HTTPS with httpx: post one message, read the id back and follow every delivery event on a signed webhook.
- DjangoPythonSend email from Django without an SMTP backend: one HTTPS call in a view or a task, an id back, and delivery reported on a webhook.
- FastAPIPythonSend email from FastAPI with one httpx client: build it once at startup, await it from a route, and get an id back for every message.
- Ruby on RailsRubySend email from Ruby on Rails over HTTPS instead of SMTP: one Net::HTTP call from a service object, an id back, delivery on a webhook.
- LaravelPHPSend email from Laravel with the Http facade instead of an SMTP mailer: one POST, an id back, and every delivery event on a webhook.
- GoGoSend email from Go with net/http and encoding/json: one POST to the API, an id back, and delivery events on a signed webhook.
- BunTypeScriptSend email from Bun with the fetch it already ships: one POST, four headers, an id back, and delivery reported on a signed webhook.
- DenoTypeScriptSend email from Deno with built-in fetch and Deno.env: one POST, no dependency, an id back and every delivery event on a webhook.
- Cloudflare WorkersTypeScript · edgeSend email from Cloudflare Workers with one fetch: the key is a secret on the env binding, and every message returns an id you can follow.
- Supabase Edge FunctionsTypeScript · edgeSend email from Supabase Edge Functions with one fetch: set the key as a secret, read it with Deno.env, and take an id back per message.
Getting started. From an empty account to a delivered email, and the rules every request follows.
6 guides
Docs
Quickstart
From an empty account to a delivered email in six steps: create a key, add and verify a domain, send, then read the message back.
Docs
Authentication
Authenticate with a bearer API key and the required User-Agent header, and read what each refusal means before you retry it.
Docs
Idempotency
Retry a send without sending it twice: how an idempotency key is scoped, how long it is remembered, and what a replay answers.
Docs
Errors
Every error the Rasket API returns, the HTTP status each name carries, and what to do about it before you try the call again.
Docs
Node SDK
The rasket package for Node.js: typed from the API's own OpenAPI document, and retrying only the calls where a retry is safe.
Docs
Python SDK
The rasket package on PyPI: the Node client's methods in snake_case, over httpx, typed and under the same retry rules.
Put the practice into practice
Verified domains, one-click unsubscribe and delivery events for every message — the parts of these guides you would otherwise build.