98 lines
2.5 KiB
JavaScript
98 lines
2.5 KiB
JavaScript
var nodemailer = require("nodemailer");
|
|
const path = require("path");
|
|
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,
|
|
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.");
|
|
}
|
|
});
|