npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

msg91-service

v1.0.4

Published

A flexible service factory for Msg91 and Nodemailer

Readme

Msg91- Email & Message Services.

npm version License: MIT

A modular and extensible factory for sending emails (and messages in future versions). This package simplifies the process of integrating multiple email providers, starting with Msg91 and Nodemailer.


Features

  • Msg91 integration for emails using templates.
  • Nodemailer support for SMTP-based email delivery which can be easily integrated with msg91 as it provides SMTP credentials.
  • Unified interface for sending emails across providers.
  • Easy to extend with additional services.
  • Written in TypeScript for type safety and better developer experience.

Upcoming Features: Future versions will include SMS support and message-sending capabilities.


NOTE: Please put the credentials from your msg91 account. It will be provided there.


How to use Email Service of MSG91

  • There are two ways-
    1. By creating templates on msg91 then providing template id as mentioned in Example 1.
    2. By using SMTP credentials provided by msg91 to send email with nodemailer as mentioned in Example 2.

Installation

Install the package using npm:

npm install msg91-service

Example 1 (Email service with Template IDs)

import { EmailServiceFactory, EmailServiceConfig } from 'msg91-service';

// Configuration for Msg91
const msg91Config: EmailServiceConfig = {
  serviceType: 'msg91',
  config: {
    authKey: 'your-msg91-auth-key',
    senderId: 'your-sender-id',
    domain: 'your-domain.com',  // Optional domain parameter
  },
};

// Create Msg91 email service instance
const msg91Service = EmailServiceFactory.createService(msg91Config);

// Define the payload to be sent
const msg91Payload = {
  email: '[email protected]',
  subject: 'Test Subject',
  templateId: 'your-template-id',
  templateData: {
    name: 'John Doe',
    orderNumber: '12345',
  },
};

// Send email
msg91Service.sendEmail(msg91Payload)
  .then(() => {
    console.log('Msg91 email sent successfully!');
  })
  .catch((error) => {
    console.error('Error sending Msg91 email:', error);
  });

Example 2 (Email service with SMTP- nodemailer)

import { EmailServiceFactory, EmailServiceConfig } from 'msg91-service';

// Configuration for Nodemailer
const nodemailerConfig: EmailServiceConfig = {
  serviceType: 'nodemailer',
  config: {
    smtpHost: "your-smtp-host",   // SMTP host address
    smtpPort: 587,                   // SMTP port (usually 587 for TLS)
    smtpUser: '[email protected]', // Your SMTP username
    smtpPass: 'your-smtp-password',   // Your SMTP password
  },
};

// Create Nodemailer email service instance
const nodemailerService = EmailServiceFactory.createService(nodemailerConfig);

// Define the payload to be sent
const nodemailerPayload = {
  email: '[email protected]',
  subject: 'Test Subject',
  htmlData: "<h1>This is a test email from Nodemailer!</h1>",
};

// Send email
nodemailerService.sendEmail(nodemailerPayload)
  .then(() => {
    console.log('Nodemailer email sent successfully!');
  })
  .catch((error) => {
    console.error('Error sending Nodemailer email:', error);
  });