UNPKG

vue-express-mongo-boilerplate

Version:

Express NodeJS application server boilerplate with Mongo and VueJS

58 lines (52 loc) 1.65 kB
"use strict"; let config = require("../config"); let logger = require("../core/logger"); let nodemailer = require("nodemailer"); let htmlToText = require("nodemailer-html-to-text").htmlToText; /* DEPRECATED: use Service.get("mailer"); */ module.exports = { send: function(recipients, subject, body, cb) { logger.info(`Sending email to ${recipients} with subject ${subject}...`); logger.debug("Deprecated! libs/mailer is deprecated. Use Service.get('mailer') instead!"); let mailOptions = { from: config.mailer.from, to: recipients, subject: subject, html: body }; let transporter; if (config.mailer.transport == "smtp") { transporter = nodemailer.createTransport(config.mailer.smtp); } else if (config.mailer.transport == "mailgun") { let mg = require("nodemailer-mailgun-transport"); transporter = nodemailer.createTransport(mg({ auth: { api_key: config.mailer.mailgun.apiKey, domain: config.mailer.mailgun.domain } })); } else if (config.mailer.transport == "sendgrid") { let sgTransport = require("nodemailer-sendgrid-transport"); transporter = nodemailer.createTransport(sgTransport({ auth: { api_key: config.mailer.sendgrid.apiKey } })); } if (transporter) { transporter.use("compile", htmlToText()); transporter.sendMail(mailOptions, (err, info) => { if (err) logger.warn("Unable to send email: ", err); else logger.info("Email message sent.", info.response); if (cb) cb(err, info); }); } else logger.warn("Unable to send email! Invalid mailer transport: " + config.mailer.transport); } };