@sushantokumar/email-sdk
v1.0.3
Published
Minimal class-based, provider-agnostic email SDK with serverless API support
Maintainers
Readme
SendEmailSDK
A minimal, provider-agnostic SMTP email SDK for Node.js and serverless environments. It supports custom SMTP configuration as well as quick helpers for common providers like Gmail and Outlook.
Designed for:
- minimal bundle size
- simple class-based API
- flexible SMTP providers
Installation
npm install @sushanto/email-sdkBasic Usage (Custom SMTP)
Use any SMTP provider by supplying the connection configuration.
import { SendEmailSDK } from "@sushanto/email-sdk";
const sender = new SendEmailSDK({
host: "smtp.gmail.com",
port: 587,
secure: false,
auth: {
user: "[email protected]",
pass: "app-password",
},
});
await sender.send({
from: "Company <[email protected]>",
to: "[email protected]",
subject: "Hello Minimal SDK",
html: "<h1>Hi!</h1>",
});Gmail Helper
You can quickly create a Gmail sender using the built-in helper.
import { SendEmailSDK } from "@sushanto/email-sdk";
const gmailSender = SendEmailSDK.createGmail({
user: "[email protected]",
pass: "app-password",
});
await gmailSender.send({
from: "Company <[email protected]>",
to: "[email protected]",
subject: "Hello Minimal SDK",
html: "<h1>Hi!</h1>",
});Gmail Requirements
- Enable 2-factor authentication
- Generate a Gmail App Password
Outlook Helper
Create an Outlook sender with the built-in helper.
import { SendEmailSDK } from "@sushanto/email-sdk";
const outlookSender = SendEmailSDK.createOutlook({
user: "[email protected]",
pass: "app-password",
});
await outlookSender.send({
from: "Company <[email protected]>",
to: "[email protected]",
subject: "Hello Minimal SDK",
html: "<h1>Hi!</h1>",
});Email Options
interface EmailOptions {
from?: string;
to: string | string[];
subject: string;
html: string;
text?: string;
}Example
await sender.send({
from: "Support <[email protected]>",
to: ["[email protected]", "[email protected]"],
subject: "Welcome",
html: "<h1>Welcome</h1>",
text: "Welcome",
});SMTP Configuration
interface SMTPConfig {
host: string;
port: number;
secure?: boolean;
auth: {
user: string;
pass: string;
};
}Example
const smtp = {
host: "smtp.mailprovider.com",
port: 587,
secure: false,
auth: {
user: "[email protected]",
pass: "smtp-password",
},
};Supported SMTP Providers
This SDK works with any SMTP provider including:
- Gmail
- Microsoft Outlook
- Zoho Mail
- SendGrid
- Amazon SES
Best Practices
- Use App Passwords instead of account passwords
- Keep SMTP credentials only on the server
- Use plain text fallback (
text) for better email compatibility - Always include a proper sender address
License
MIT License.
