Skip to content

Instantly share code, notes, and snippets.

@sc0rp10n-py
Created March 29, 2022 15:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sc0rp10n-py/98dd2c4f113c7598aebcdc7bcfa751b4 to your computer and use it in GitHub Desktop.
Save sc0rp10n-py/98dd2c4f113c7598aebcdc7bcfa751b4 to your computer and use it in GitHub Desktop.
nodemailer eg
const express = require("express");
const bodyParser = require("body-parser");
const mysql = require("mysql"); //as we use a MySQL database
const nodemailer = require("nodemailer"); //to send mails
var cors = require("cors");
const Server = "aqueous-refuge-02128.herokuapp.com";
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(cors());
var conn = mysql.createConnection({
host: "ssdfsdfql6.fsdfsreefsdfmyfsdfsdssdfsdqlfsdfsdhosdfssdfsdting.net",
user: "sqsdfsdl6sdf467dsf324471",
password: "A2342bsn23Mv3l4p7",
database: "sql6234325234467471",
});
var transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: "abc@gmail.com",
pass: "3asdfasdf33asdfsdf1sdfas11sdfsdf1120",
},
});
app.listen(process.env.PORT || 5000, () => {
console.log("Server is listening...url: " + Server);
});
app.get("/", (req, res) => {
res.json({
message: "Hi this is mail tracker node server",
url: Server,
});
});
app.route("/sendmail").post((req, res) => {
let Sender = req.body["Sender"];
let Recipient = req.body["Recipient"];
let MessageBody = req.body["MessageBody"];
let Subject = req.body["Subject"];
let htmlBody =
"<p>" +
MessageBody +
"</p>" +
'<img src = "' +
"https://" +
Server +
"/recipients/" +
Recipient +
'" style="display:none">';
var mailOptions = {
from: Sender,
to: Recipient,
subject: Subject,
html: htmlBody,
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
conn.query(
"INSERT INTO recipients(email) VALUES(?)",
[Recipient],
(err, rows) => {
if (err) {
throw (err, console.log(err));
} else {
res.send({ status: "success" });
}
}
);
}
});
});
app.route("/recipients/:recipient").get((req, res) => {
var Recipient = req.params["recipient"];
var date_ob = new Date().toISOString().slice(0, 19).replace("T", " ");
conn.query(
"UPDATE recipients SET opened = true, lastseen= ? WHERE email=?",
[date_ob, Recipient],
(err, rows) => {
if (err) {
console.log(err);
} else {
console.log("Data Inserted:");
res.send({ status: "success" });
}
}
);
res.send({ time: date_ob });
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment