
Send email from Django: views, Celery and webhooks
Send email from Django with an API: the key in settings, a Celery task that retries with one idempotency key, and a CSRF-exempt webhook view for the events.

Send email from Rails: Action Mailer or an API
Send email from Rails with an API and no gem: a Net::HTTP service object, an Active Job that retries with one idempotency key, and a webhook controller.

Send email from Laravel: Mail or an HTTP API
Send email from Laravel with an API: the key in config/services.php, a queued job that retries with one idempotency key, and a webhook route excluded from CSRF.

Send email from Go: net/smtp or an HTTP API
Send email from Go with net/http: a client with a timeout, a typed error per refusal, retries that keep the idempotency key, and webhooks checked by hand.

Schedule email API: send at a time you choose
Schedule an email over the API: an ISO 8601 scheduled_at up to 30 days out, a PATCH to move it, a cancel, and the time-zone mistakes to avoid.

Email API rate limits: headers and backoff
Email API rate limits at Rasket: 10 requests a second per team, the four headers, a 429 retried with the same key, and the quotas that are not rate limits.

Email template variables done right
How email template variables should work: declared with a type and a fallback, checked at send, versioned so each email records what it said, and HTML-escaped.

Send email from Next.js: route handler or action
Send email from Next.js without leaking your API key: a route handler, a server action, the client-component trap, and a webhook that records what happened.

Email API vs SMTP: which should you use?
SMTP is a conversation; an email API is one request. What each gives you on retries, idempotency, events and firewalls, and how to move from one to the other.

Send email from Python: smtplib or an API
Send email from Python without an SMTP conversation: the client library, a plain requests call, where the send belongs in Django and FastAPI, and retries.

Idempotent email sends: never send twice
A timeout does not tell you whether the send happened. What an idempotency key is, how the 24-hour window behaves, how to choose keys, and what a batch does.

Send email from Node.js: API vs SMTP vs Nodemailer
Three ways to send email from Node.js — an HTTP API, SMTP and Nodemailer — what each one costs you, and a working send with retries and webhooks.

Transactional vs marketing email: how to send each
What separates transactional email from marketing email — the trigger, consent, unsubscribe headers and reputation — and how to send both from one API.
Ready to send something?
Sign up, verify a domain and send your first email in minutes.