wednesday-emails/jobChecker.js
Jack 31fbb6b377
All checks were successful
Build and push image / Build (push) Successful in 46s
Update jobChecker.js
2025-03-12 12:24:40 +00:00

109 lines
2.9 KiB
JavaScript

var nodemailer = require("nodemailer");
var handlebars = require("handlebars");
const cron = require('node-cron');
var fs = require("fs");
let transporter = nodemailer.createTransport({
pool: true,
host: process.env.host,
port: 587,
secure: false, // use TLS
auth: {
user: process.env.mailuser,
pass: process.env.mailpass,
},
tls: {
ciphers:'SSLv3'
}
});
var prefix = "/opt/app/"
var readHTMLFile = function(path, callback) {
fs.readFile(path, {encoding: 'utf-8'}, function (err, html) {
if (err) {
throw err;
callback(err);
}
else {
callback(null, html);
}
});
};
var mysql = require('mysql');
const { exit } = require("process");
var con = mysql.createConnection({
host: process.env.mysqlhost,
user: process.env.mysqluser,
password: process.env.mysqlpass,
database: "wednesday_db"
});
console.log("STARTED!")
con.connect(function(err) {
if (err) throw err;
//console.log("You are connected!");
console.log("connected waiting for wednesday!")
cron.schedule('0 0 * * *', function() {
console.log('connected waiting for wednesday!');
});
cron.schedule('0 0 * * WED', function() {
console.log('running a task every wed');
check();
});
});
var count = 0;
//console.log(mURL);
function check(){
query = "SELECT user_email FROM users WHERE need_wed = '1'";
con.query(query, function(error,results,fields){
if(error) throw error;
console.log(results);
results.forEach(row => {
var htmlToSend;
readHTMLFile(prefix+"email.html",function(err,html){
//console.log(html)
//console.log(randURL)
var template = handlebars.compile(html);
var replacements = {
htmlURL: "https://tgj.services",
};
htmlToSend = template(replacements);
var mailOptions = {
from: 'wednesday@tgj.services',
to: row["user_email"],
subject: "IT'S WEDNESDAY MY DUUDES!",
html: htmlToSend
};
//console.log(htmlToSend)
console.log("Job Finished! - " + row["user_email"]);
SendMail(mailOptions,results);
});
count += 1;
});
});
}
function SendMail(options,results){
transporter.sendMail(options, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
console.log(count)
}
function disconnect(){
con.end();
}