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(); }