Email SDK
Email for TypeScript apps. Send transactional email through 27 adapters with one typed SDK.
Email for TypeScript apps. Install the SDK, add the adapter for your existing provider account, and call email.send(). The message shape stays the same if you switch providers later.
Send your first email
Install the SDK, configure one adapter, and send a message from Node.js or Bun.
Start here
import { createEmailClient } from "@opencoredev/email-sdk";
import { resend } from "@opencoredev/email-sdk/resend";
export const email = createEmailClient({
adapters: [resend({ apiKey: process.env.RESEND_API_KEY! })],
});Now call email.send({ from, to, subject, text }). Add retries, fallback, plugins, and more adapters only when you need them.
Included
- 26 provider API adapters plus SMTP, 27 adapters total
- Typed adapter names in
send,validate,adapter, andwithAdapter - Retries on the current adapter, then fallback only when delivery is known to have failed
- Independent
sendManycalls and personalizedsendPersonalizeddelivery - Hooks, middleware, built-in plugins, and no-network test adapters
- Provider-native scheduled sends with
sendAt - CLI commands for adapter discovery, setup checks, and validated dry runs
- Optional approval-gated AI SDK tools for agent workflows
Runtime boundary
Email SDK is server-side and supports Node.js 20+ or Bun 1.1+. Use ESM imports on any supported runtime, or require() from CommonJS applications on Node.js ^20.19.0 || >=22.12.0 (20.19+ on 20.x, or 22.12+). On older supported runtimes, use dynamic import(). See Install for typed CommonJS configuration. Keep API keys and SMTP credentials out of browser bundles.
Install
Install the SDK and confirm your Node.js or Bun version.
Schedule an email
Use sendAt for provider scheduling, or keep long-running jobs in your own queue.
Choose an adapter
Set a default adapter and select another by its typed name when needed.
Upgrade from 0.x
Replace v0 provider names and send options with v1 adapters and options.