UNPKG

dry-node

Version:

Initialiseur de structure Node Express typée et modulaire

83 lines (69 loc) 2.13 kB
const nodemailer = require('nodemailer'); const hbs = require('nodemailer-express-handlebars'); const DryGeneratePdf = require("../../dry-core/dry-functions/dry-generate-pdf.function"); const DrySendEmailAdvanced = async options => { /** * 1. template * 2. ViewEngine * 3. */ //1. transporter const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: process.env.SMTP_PORT, secure: process.env.SMTP_SECURE, auth: { user: process.env.SMTP_EMAIL, pass: process.env.SMTP_PASSWORD } }); //2. viewEngine transporter.use('compile', hbs({ viewEngine: { extname: '.handlebars', layoutsDir: './views/', defaultLayout: 'default', //change }, viewPath: './views/' })); let attachments = []; //3. generate pdf let filesJoin = []; const resPdfCreator = await DryGeneratePdf({ html: "", data: "", nameFile: "", header: "", }).then((res)=>{ }); filesJoin.push(resPdfCreator); filesJoin.forEach(el=>{ let at = { 'path' : process.env.PATH_ENV_USE+'pdfs/'+el.fileDownload, 'filename' : el.fileDownload }; attachments.push(at); }); const message = { from: `${process.env.FROM_NAME} <${process.env.FROM_EMAIL}>`, to: options.email, subject: options.subject, text: options.message, attachments: attachments, template: options.template, context: { title: options.subject, msg: options.msg, name:name, yearNow:new Date().getFullYear(), data: options.data } }; try { const info = await transporter.sendMail(message); } catch (err) { return err // res.status(200).json({success: true, data: "ValidCode"}); } }; module.exports = DrySendEmailAdvanced;