@graminpoly123/easy-mailer
v1.7.0
Published
A lightweight and developer-friendly email SDK for Node.js that simplifies sending emails with zero-config setup, bulk sending, and prebuilt templates like OTP and welcome emails.
Readme
✉️ easy-mailer
A lightweight and developer-friendly email SDK for Node.js that simplifies sending emails with zero-config setup, bulk sending, and prebuilt templates like OTP and welcome emails.
🚀 Features
- ⚡ Simple & clean API
- 📤 Bulk email sending with concurrency control
- 🎨 Prebuilt templates (OTP, Welcome)
- 🔁 Retry mechanism with backoff
- ⏱️ Rate limiting to prevent spam blocking
- 🌐 Multi-provider support (Gmail, SMTP)
- 🔐 Secure usage with environment variables
📦 Installation
npm install @graminpoly123/easy-mailer⚙️ Setup
import mailer from "@graminpoly123/easy-mailer";
mailer.init({
provider: "gmail",
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
});✉️ Send a Simple Email
await mailer.send({
to: "[email protected]",
subject: "Hello 🚀",
text: "This is a test email",
});🔢 Send OTP Email
await mailer.sendOTP({
to: "[email protected]",
code: 123456,
});📤 Bulk Email Sending
await mailer.bulkSend({
to: ["[email protected]", "[email protected]"],
subject: "Bulk Email 🚀",
template: "welcome",
data: { name: "User" },
concurrency: 2,
});🎨 Using Templates
await mailer.send({
to: "[email protected]",
subject: "Welcome",
template: "welcome",
data: { name: "Nikhil" },
});🌐 SMTP Provider Example
mailer.init({
provider: "smtp",
host: "smtp.yourserver.com",
port: 587,
user: "your-email",
pass: "your-password",
});🔐 Environment Variables (Recommended)
Create .env.local:
[email protected]
EMAIL_PASS=your_app_password⚠️ Important Notes
- Use Gmail App Password, not your normal password
- This package works only on backend (Node.js)
- Do not expose credentials on frontend
🧠 How It Works
- Uses a provider system (Gmail / SMTP)
- Handles bulk emails with concurrency + rate limiting
- Retries failed emails automatically
- Supports dynamic templates
⚡ Quick Demo
import mailer from "@graminpoly123/easy-mailer";
mailer.init({
user: process.env.EMAIL,
pass: process.env.PASS,
});
await mailer.sendOTP({
to: "[email protected]",
code: 123456,
});📈 Future Improvements
- SendGrid / Mailgun support
- Email tracking (open/click)
- Dashboard for logs & analytics
- Queue system with Redis
🏷️ Keywords
email, nodemailer, nodejs, bulk-email, smtp, gmail, otp, email-templates
👨💻 Author
Built with ❤️ by Nikhil Vitthal Kandhare and help by Saraswati Adkine
⭐ Support
If you found this useful, please ⭐ the repo and share it!
