Tansition to amazon SES email.

This commit is contained in:
Patrick Fic
2021-04-25 11:43:07 -07:00
parent 4519f59987
commit f33715b83c
4 changed files with 194 additions and 62 deletions

View File

@@ -6,62 +6,113 @@ require("dotenv").config({
),
});
const inlineCssTool = require("inline-css");
const mailjet = require("node-mailjet").connect(
process.env.email_api,
process.env.email_secret
);
let nodemailer = require("nodemailer");
let aws = require("aws-sdk");
const ses = new aws.SES({
apiVersion: "2010-12-01",
region: "ca-central-1",
});
let transporter = nodemailer.createTransport({
SES: { ses, aws },
});
exports.sendEmail = async (req, res) => {
if (process.env.NODE_ENV !== "production") {
console.log("[EMAIL] Incoming Message", req.body.from.name);
}
transporter.sendMail(
{
from: `${req.body.from.name} <${req.body.from.address}>`,
replyTo: req.body.ReplyTo.Email,
to: req.body.to,
cc: req.body.cc,
subject: "Message",
attachments:
(req.body.attachments &&
req.body.attachments.map((a) => {
return {
path: a,
};
})) ||
null,
html: req.body.html,
ses: {
// optional extra arguments for SendRawEmail
Tags: [
{
Name: "tag_name",
Value: "tag_value",
},
],
},
},
(err, info) => {
console.log(err || info);
if (info) {
console.log("[EMAIL] Email sent: " + info);
res.json({ success: true, response: info });
} else {
console.log("[EMAIL] Email send failed. ", err);
res.json({ success: false, error: err });
}
}
);
// const inlinedCssHtml = await inlineCssTool(req.body.html, {
// url: "https://imex.online",
// });
// console.log("inlinedCssHtml", inlinedCssHtml);
const request = mailjet.post("send", { version: "v3.1" }).request({
Messages: [
{
From: {
Email: req.body.from.address,
Name: req.body.from.name,
},
To:
req.body.to &&
req.body.to.map((i) => {
return { Email: i };
}),
CC:
req.body.cc &&
req.body.cc.map((i) => {
return { Email: i };
}),
ReplyTo: {
Email: req.body.ReplyTo.Email,
Name: req.body.ReplyTo.Name,
},
Subject: req.body.subject,
// TextPart:
// "Dear passenger 1, welcome to Mailjet! May the delivery force be with you!",
HTMLPart: req.body.html,
Attachments: req.body.attachments || null,
},
],
});
request
.then((result) => {
console.log("[EMAIL] Email sent: " + result);
res.json({ success: true, response: result });
})
.catch((err) => {
console.log("[EMAIL] Email send failed. ", err);
res.json({ success: false, error: err.message });
});
// Create the promise and SES service object
// const request = mailjet.post("send", { version: "v3.1" }).request({
// Messages: [
// {
// From: {
// Email: req.body.from.address,
// Name: req.body.from.name,
// },
// To:
// req.body.to &&
// req.body.to.map((i) => {
// return { Email: i };
// }),
// CC:
// req.body.cc &&
// req.body.cc.map((i) => {
// return { Email: i };
// }),
// ReplyTo: {
// Email: req.body.ReplyTo.Email,
// Name: req.body.ReplyTo.Name,
// },
// Subject: req.body.subject,
// // TextPart:
// // "Dear passenger 1, welcome to Mailjet! May the delivery force be with you!",
// HTMLPart: req.body.html,
// Attachments: req.body.attachments || null,
// },
// ],
// });
// request
// .then((result) => {
// console.log("[EMAIL] Email sent: " + result);
// res.json({ success: true, response: result });
// })
// .catch((err) => {
// console.log("[EMAIL] Email send failed. ", err);
// res.json({ success: false, error: err.message });
// });
// transporter.sendMail(
// {
@@ -82,22 +133,3 @@ exports.sendEmail = async (req, res) => {
// }
// );
};
// var transporter = nodemailer.createTransport({
// host: process.env.email_server,
// port: 465,
// secure: true, // upgrade later with STARTTLS
// auth: {
// user: process.env.email_api,
// pass: process.env.email_secret,
// },
// });
// // verify connection configuration
// transporter.verify(function (error, success) {
// if (error) {
// console.log(error);
// } else {
// console.log("[EMAIL] Succesfully connected to SMTP server.");
// }
// });