const nodemailer = require('nodemailer'); const handlebars = require('handlebars'); const fs = require('fs'); const path = require('path'); const sendEmail = async (email, subject, payload, template) => { try { const transporter = nodemailer.createTransport({ service: process.env.EMAIL_SERVICE, auth: { user: process.env.EMAIL_USERNAME, pass: process.env.EMAIL_PASSWORD, }, }); const source = fs.readFileSync(path.join(__dirname, 'emails', template), 'utf8'); const compiledTemplate = handlebars.compile(source); const options = () => { return { from: process.env.EMAIL_FROM, to: email, subject: subject, html: compiledTemplate(payload), }; }; // Send email transporter.sendMail(options(), (error, info) => { if (error) { console.log(error); return error; } else { console.log(info); return info; } }); } catch (error) { console.log(error); return error; } }; module.exports = sendEmail;