Added image upload to email and multiple recipients BOD-103
This commit is contained in:
101
sendemail.js
101
sendemail.js
@@ -1,7 +1,81 @@
|
||||
var nodemailer = require("nodemailer");
|
||||
const path = require("path");
|
||||
require("dotenv").config({ path: path.resolve(process.cwd(), `.env.${process.env.NODE_ENV || 'development'}`) });
|
||||
require("dotenv").config({
|
||||
path: path.resolve(
|
||||
process.cwd(),
|
||||
`.env.${process.env.NODE_ENV || "development"}`
|
||||
),
|
||||
});
|
||||
|
||||
const mailjet = require("node-mailjet").connect(
|
||||
process.env.email_api,
|
||||
process.env.email_secret
|
||||
);
|
||||
|
||||
exports.sendEmail = (req, res) => {
|
||||
if (process.env.NODE_ENV !== "production") {
|
||||
console.log("[EMAIL] Incoming Message", req.body.from.name);
|
||||
}
|
||||
|
||||
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.map((i) => {
|
||||
return { Email: i };
|
||||
}),
|
||||
|
||||
ReplyTo: {
|
||||
Email: req.body.from.address,
|
||||
Name: req.body.from.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,
|
||||
// Attachments: [
|
||||
// {
|
||||
// ContentType: "text/plain",
|
||||
// Filename: "test.txt",
|
||||
// Base64Content: "VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK",
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
],
|
||||
});
|
||||
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(
|
||||
// {
|
||||
// ...req.body,
|
||||
// from: {
|
||||
// name: req.body.from.name ,
|
||||
// address: "noreply@bodyshop.app",
|
||||
// },
|
||||
// },
|
||||
// function (error, info) {
|
||||
// if (error) {
|
||||
// console.log("[EMAIL] Email send failed. ", error);
|
||||
// res.json({ success: false, error: error });
|
||||
// } else {
|
||||
// console.log("[EMAIL] Email sent: " + info.response);
|
||||
// res.json({ success: true, response: info.response });
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
};
|
||||
|
||||
var transporter = nodemailer.createTransport({
|
||||
host: process.env.email_server,
|
||||
@@ -21,28 +95,3 @@ transporter.verify(function (error, success) {
|
||||
console.log("[EMAIL] Succesfully connected to SMTP server.");
|
||||
}
|
||||
});
|
||||
|
||||
exports.sendEmail = (req, res) => {
|
||||
if (process.env.NODE_ENV !== "production") {
|
||||
//console.log("[EMAIL] Incoming Message Body", req.body);
|
||||
console.log("[EMAIL] Incoming Message", req.body.from.name);
|
||||
}
|
||||
transporter.sendMail(
|
||||
{
|
||||
...req.body,
|
||||
from: {
|
||||
name: req.body.from.name || "No Reply @ Bodyshop.app",
|
||||
address: "noreply@bodyshop.app",
|
||||
},
|
||||
},
|
||||
function (error, info) {
|
||||
if (error) {
|
||||
console.log("[EMAIL] Email send failed. ", error);
|
||||
res.json({ success: false, error: error });
|
||||
} else {
|
||||
console.log("[EMAIL] Email sent: " + info.response);
|
||||
res.json({ success: true, response: info.response });
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user