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 sendcb
: 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 successfullycb
: 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 templatedata
: 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 verifieddata
: 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