
Transactional HTML that renders everywhere: the constraints
Email clients support a narrow, quirky slice of HTML and CSS. The constraints that matter for receipts and alerts, and a structure that survives them.
4 min read
Blog · Email API · page 2 of 3
Transactional email engineering: sending APIs, SMTP relays, webhooks, retries, idempotency, templates and testing.

Email clients support a narrow, quirky slice of HTML and CSS. The constraints that matter for receipts and alerts, and a structure that survives them.
4 min read

Mailbox providers report spam complaints as ARF messages. Parse them, map them back to the recipient and suppress automatically within minutes.
4 min read

Keep templates in the repo, review them like code, render them in tests and roll changes out safely so a typo never reaches a million inboxes.
4 min read

A client retry after a timeout should never email a customer twice. How idempotency keys work, the race people miss and how to pick key values.
4 min read

An email API key is the power to send as your domain. Scope keys narrowly, store them safely, rotate them on a schedule and respond fast to leaks.
4 min read

Hard bounces, complaints and unsubscribes each deserve different suppression rules. Design a suppression list, scopes and expiry that protect reputation.
5 min read

Never trust a webhook until you verify its signature over the raw body. HMAC verification in Node, Python and Go, plus timestamp and replay checks.
5 min read

Assert on the message your code builds, not on an inbox. Layered tests for transactional email: rendering units, contract tests and a few end-to-end checks.
4 min read

SMTP relays are universally compatible; HTTP APIs are easier to make idempotent and observable. Compare them on errors, retries, security and speed.
4 min read

One-click unsubscribe needs two headers, a DKIM signature that covers them, and an endpoint that accepts a POST without a login. Build it step by step.
5 min read

Control how notification emails thread in Gmail and Outlook with Message-ID, In-Reply-To and References, and how to break unwanted threads apart.
4 min read

Attaching invoices and reports raises size, security and deliverability concerns. When to attach, when to link, and how to keep attachments safe.
4 min read