97 lines
2.9 KiB
JavaScript
97 lines
2.9 KiB
JavaScript
// Define JSON File
|
|
var fs = require("fs");
|
|
var nodemailer = require('nodemailer');
|
|
var sleep = require('system-sleep');
|
|
let transporter = nodemailer.createTransport({
|
|
host: "smtp.zoho.com",
|
|
port: 465,
|
|
secure: true, // true for 465, false for other ports
|
|
auth: {
|
|
user: "emsi@aski.me", // generated ethereal user
|
|
pass: "wcbdbvQaGqiH" // generated ethereal password
|
|
}
|
|
});
|
|
date = new Date(Date.now());
|
|
timeString = date.getHours() + "-" + date.getMinutes() + "-" + date.getSeconds();
|
|
fileName = "logs\\log " + timeString.toString() + ".txt";
|
|
emailNb=0;
|
|
emailSentNb=0;
|
|
|
|
/*fs.writeFile(fileName, '\r\n', function (err) {
|
|
if (err) throw err;
|
|
console.log('It\'s saved!');
|
|
});*/ // => message.txt erased, contains only 'Hello Node'
|
|
|
|
async function send(name, email, phone, callback) {
|
|
|
|
|
|
|
|
let mailOptions = {
|
|
from: '"Délégué 5IIR EMSI" <emsi@aski.me>', // sender address
|
|
to: email, // list of receivers
|
|
subject: "[EMSI] ✔ Confirmation d'email et Numéro de téléphone", // Subject line
|
|
html: "Bonjour " + name + ",<br><br>Veuillez confirmer que ces informations sont correctes: <br><br>" +
|
|
"E-mail: <b>" + email + "</b><br>Tél: <b>" + phone +
|
|
"</b><br><br>Merci de confirmer par une réponse à ce mail le plus tot possible." +
|
|
"<br><br>Cordialement.<br><br><br><br> ------- " +
|
|
"<br><br>- Cet email est envoyé par le délégué du 5 IIR G1 EMSI Centre" // html body
|
|
};
|
|
|
|
// send mail with defined transport object
|
|
let info = await transporter.sendMail(mailOptions);
|
|
|
|
stream.write("\r\nlog: "+JSON.stringify(info));
|
|
console.log("\r\nlog:",info);
|
|
|
|
if(info.accepted[0] == email)
|
|
{
|
|
stream.write("\r\nResult: Email Sent");
|
|
console.log("\r\nResult: Email Sent");
|
|
emailSentNb++;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
// Get content from file
|
|
// Define to JSON type
|
|
var contents = JSON.parse(fs.readFileSync("data.json"));
|
|
var students = contents["students"];
|
|
|
|
var stream = fs.createWriteStream(fileName, {flags:'a'});
|
|
//stream.write("Starting....");
|
|
// Get Value from JSON
|
|
/*students.forEach(s => {
|
|
|
|
stream.write("\r\n------ Student: " + s.name + "--------------\r\n");
|
|
//send(s.name,s.email,s.phone).catch(console.error);
|
|
console.log("waiting...");
|
|
stream.write("teest");
|
|
|
|
//sleep(1000*60*1);
|
|
|
|
});*/
|
|
|
|
emailNb=students.length;
|
|
async function sendToStudent(students, index) {
|
|
student = students[index];
|
|
stream.write("\r\n------ Student" + index+": " + student.name + "--------------\r\n");
|
|
console.log("\r\n------ Student" + index+": " + student.name + "--------------\r\n");
|
|
stream.write("Sending ...\r\n");
|
|
console.log("Sending ...\r\n");
|
|
await send(student.name,student.email,student.phone);
|
|
stream.write("\r\nSent "+emailSentNb+"/"+emailNb+" email");
|
|
console.log("Sent "+emailSentNb+"/"+emailNb+" email");
|
|
|
|
if(index < students.length-1)
|
|
sendToStudent(students,index+1);
|
|
|
|
|
|
|
|
|
|
}
|
|
sendToStudent(students,0);
|
|
|