1.0.8 • Published 2 years ago

mail-template-sender v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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: 'youremail@gmail.com',
  from: 'myemail@gmail.com',
  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 (obisiket@gmail.com)

1.0.8

2 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago