Unified email sending for TypeScript
One email client. Every provider you trust.
Send through Resend, SMTP, Postmark, and more without rewriting provider glue or hiding what each adapter supports.
Fallbacks
Fail over by route
Contracts
No silent field drops
CLI
Test sends locally
email.ts
1import { createEmailClient } from "email-sdk";2import { resend } from "email-sdk/resend";3import { smtp } from "email-sdk/smtp";5const email = createEmailClient({6 adapters: [7 resend({ apiKey: process.env.RESEND_API_KEY! }),8 smtp({9 host: process.env.SMTP_HOST!,10 auth: {11 user: process.env.SMTP_USER!,12 pass: process.env.SMTP_PASS!,13 },14 }),15 ],16 fallback: ["smtp"],17 retry: { retries: 1 },18});20await email.send({21 from: "Acme <hello@acme.com>",22 to: "user@example.com",23 subject: "Welcome",24 text: "Your account is ready.",25});