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 🙏

© 2024 – Pkg Stats / Ryan Hefner

mail-template-sender

v1.0.8

Published

Email - Template - Sender: Renders templates and sends email

Downloads

1

Readme

mail-template-sender

mail-template-sender is an event emitting, node.js package for providing a mail template sending capabilities with various options.

Note: By default, mail-template-sender uses ejs as its template engine

Installation

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install mail-template-sender

or

$ yarn add mail-template-sender

Usage

Simple Usage

To use the default template engine, create a folder containing all your mails in ejs. Each mail file (template) should be suffixed with .template.[ext] eg. ./templates/verification.template.ejs

The package identifies the template file using the .template.ejs

const { MailerTemplateSetup, Mail } = require('mail-template-sender')
const { SendGridProvider } = require('mail-template-sender/providers')


// Adding SendGrid Provider
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(/* Send Grid Key */)
const sgProvider = new SendGridProvider(sgMail);


// Create MailerTemplateSetup
const mailerOptions = {
  provider: sgProvider,
  templateDir: path.join(__dirname, 'templates')
}
const mailer = MailerTemplateSetup.config(mailerOptions)


// Create mail object
const mailOptions = {
  template: 'verification',
  to: '[email protected]',
  from: '[email protected]',
  subject: 'From My Mailer',
}
const mail = new Mail(mailOptions)


// Add template data
mail.addData({ user: 'Bla' })


// Send mail
mailer.mailSender.send(mail)

Configuring mail-template-sender

const mailerOptions = {
  provider: /* A provider instance */,
  templateDir: /* Template folder path */,
  templateEngineExtension: /* This parameter is optional: this is the preffered template engine file extension */
}

const mailOptions = {
  template: /* template name */,
  to: /* email */,
  from: /* email */, // Use the email address or domain you verified above
  subject: /* preffered subject */,
}

MailTemplateSender

  • onError(cb): This method recieves a callback to handle what happens when a mail fails to send

    • cb: this must be a callback eg. cb = (error, mail) => {}

  • onSent(cb): This method recieves a callback to handle what happens when a mail is sent successfully

    • cb: this must be a callback eg. cb = (mail, result) => {}

Mail Class Methods

  • addData(data): This method is used to add the data that used inside the ejs template

    • data: this must be an Object

  • addSubject(data): Adds the subject to the mail(although it can be added during mail creation)

    • data: this must be string

  • addTo(data): Adds the reciever to the mail(although it can be added during mail creation)

    • data: this must be string

  • addFrom(data): Adds the sender to the mail(although it can be added during mail creation). Use the email address or domain you verified

    • data: this must be string

Providers

The provides provided for you are

  • SendGridProvider
  • NodeMailerProvider

These are classes that can be used as provider. You can create you own provider by extending the Provider class

i.e

const Provider = require("mail-template-sender/core/Provider");
class NewProvider extends Provider {
  // implement the send()
  // Note: The `body` and `mail` are defaultly provided
}

Implementing A different template Engine

Coming Soon

License

MIT License

Author

Obisike Treasure ([email protected])