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 🙏

© 2026 – Pkg Stats / Ryan Hefner

mailex

v1.1.1

Published

Easy Mail Sender

Readme

MAILEX

Features

mailex is a powerful and easy-to-use Node.js module designed to handle and automate email-related tasks in your applications. With mailex, you can easily send emails and attachments.

Installation

To install the package, run the following command:

npm install mailex

Usage

How to Get Script-URL.

To get your script-URL, Goto Google Apps Script and login with your google mail you want to use for send email.

then create a New Project, and name the project. then paste the code given below and click save button.


function doGet() {
  return ContentService
    .createTextOutput("GET Method Not Allowed")
    .setMimeType(ContentService.MimeType.TEXT);
}

function doPost(e) {
  try {
    if (!e || !e.parameter) {
      throw new Error("No POST data received");
    }

    var p = e.parameter;

    var recipient = p.recipient;
    var cc = p.cc || "";
    var bcc = p.bcc || "";
    var subject = p.subject;
    var htmlBody = p.body;

    if (!recipient || !subject || !htmlBody) {
      throw new Error("Missing required fields");
    }

    // Handle base64 attachments
    var attachments = [];
    if (p.files) {
      var files = JSON.parse(p.files);

      files.forEach(function(file) {
        var blob = Utilities.newBlob(
          Utilities.base64Decode(file.base64),
          file.mimeType,
          file.name
        );
        attachments.push(blob);
      });
    }

    MailApp.sendEmail({
      to: recipient,
      cc: cc,
      bcc: bcc,
      subject: subject,
      htmlBody: htmlBody,
      attachments: attachments
    });

    // Response
    return ContentService
      .createTextOutput(JSON.stringify({
        status: "success",
        message: "Email sent successfully"
      }))
      .setMimeType(ContentService.MimeType.JSON);

  } catch (err) {
    // Error → HTTP 500 (Apps Script limitation workaround)
    throw new Error(JSON.stringify({
      status: "failure",
      message: err.message
    }));
  }
}

then deploy with New Dployment.

Configure deployment by,

  1. press the gear icon and chose Web app.
  2. give New Description,
  3. Chose Execute as Me(your-email),
  4. Chose Who has access as Anyone

then Click on deploy and Authorize access your gmail to send mail permision. then chose your Gmail Account, Click on Advanced option and click on Go to your project name (unsafe), then click on Allow button.

copy the Web app URL and store securly in .env file.

Using ES6 import.

import {Mailex} from 'mailex';

Using CommonJS require.

const {Mailex} = require('mailex');

Create a new instance.

const mailex = new Mailex('your-script-URL');//"https://script.google.com/xxxxxxxxxxxxxxx";

Sending an Email using callback

To send an email, use the "sendMail()" method. This method requires two parameters:

emailDetails: An object containing the following properties:

{
    email: "The recipient's email address",
    cc: "The recipient's email address", (optional)
    bcc: "The recipient's email address", (optional)
    subject: "The subject of the email",
    content: "The content of the email/HTML",
    files: [{
      name:"File name",
      mimeType:"File Mimetype",
      base64:'File Base64 string'}],Total Size =25mb RAW~18mb (optional)
}

callback function(Optional): A function that receives one parameter, which returns the response of the mail send status.

  const emailDetails = {
  email: '[email protected]',
  subject: 'Hello from mailscript',
  content: 'This is a test email using mailscript Text/ HTML'
};

mailex.sendMail(emailDetails, (response) => {
    console.log(response) //return a object {status:'success':message:'Email sent successfully.'}
});

Sending an Email using Promise

Alternatively, you can send an email using the "sendMailAsync()" method, which returns a promise. It takes one parameter, an emailDetails : An object containing the following properties:

{
    email: "The recipient's email address",
    cc: "The recipient's email address", (optional)
    bcc: "The recipient's email address", (optional)
    subject: "The subject of the email",
    content: "The content of the email/HTML",
    files: [{
      name: "File name",
      mimeType: "File Mimetype (image/jpeg, application/pdf)",
      base64: "File Base64 string",}],Total Size =25mb RAW~18mb (optional)
      }]
}

You can handel the promise with .then() and .catch() or with async/await.


const emailDetails = {
    email: "[email protected]",
    subject: "Your Email Subject",
    content: `This is the content of the email as Text/ HTML.`
};

mailex.sendMailAsync(emailDetails)
    .then(response => {
        console.log('Mail send status:', response); //return a object {status:'success':message:'Email sent successfully.'}
    })
    .catch(error => {
        console.error('Failed to send email:', error);
    });

This module ignore to send email for domain test.com/ test.in

Contact

For any question or concerns, Please contact the maintainer: -Bikram Sahoo