This plugin works with nodemailer 6.x. And uses the express-handlebars view engine to generate html emails.
npm install nodemailer-express-handlebars
//reference the plugin
import hbs from 'nodemailer-express-handlebars';
//attach the plugin to the nodemailer transporter
transporter.use('compile', hbs(options));
//send mail with options
const mail = {
from: 'from@domain.com',
to: 'to@domain.com',
subject: 'Test',
template: 'email',
context: {
name: 'Name'
}
}
transporter.sendMail(mail);
You can send a multipart html and text email by setting the text_template
option on a mail message.
const mail = {
from: 'from@domain.com',
to: 'to@domain.com',
subject: 'Test',
template: 'email',
text_template: 'text',
context: {
name: 'Name'
}
}
The plugin expects the following options:
- viewEngine (required) either the express-handlebars view engine instance or options for the view engine
- viewPath (required) provides the path to the directory where your views are
- extName the extension of the views to use (defaults to
.handlebars
)
Set the template and values properties on the mail object before calling sendMail
- template the name of the template file to use
- context this will be passed to the view engine as the context as well as view engine options see here
MIT