"use strict"; let AWS = require("aws-sdk"); const htmlToText = require("html-to-text"); const { AWS_EMAIL_CONFIG } = require("../config/appConfig"); AWS.config.update({ region: AWS_EMAIL_CONFIG.REGION, credentials: { accessKeyId: AWS_EMAIL_CONFIG.CREDENTIALS.ACCESS_KEY_ID, secretAccessKey: AWS_EMAIL_CONFIG.CREDENTIALS.SECRET_ACCESS_KEY } }); const awsMailer = new AWS.SES({ apiVersion: "2010-12-01" }); const sendEmail = async (to, subject, message, from) => { const params = { Destination: { ToAddresses: [to] }, Message: { Subject: { Charset: "UTF-8", Data: subject }, Body: { Html: { Charset: "UTF-8", Data: message }, Text: { Charset: "UTF-8", Data: htmlToText.fromString(message) } } }, ReturnPath: from ? from : AWS_EMAIL_CONFIG.SOURCE_EMAIL, Source: from ? from : AWS_EMAIL_CONFIG.SOURCE_EMAIL }; return new Promise((resolve, reject) => { awsMailer.sendEmail(params, (error, data) => { if (error) { reject(error); } else { resolve(data); } }); }); }; module.exports = { sendEmail };