Almost done
This commit is contained in:
48
package-lock.json
generated
Normal file
48
package-lock.json
generated
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "me.aski",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"requires": true,
|
||||||
|
"dependencies": {
|
||||||
|
"bindings": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
|
||||||
|
"integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE="
|
||||||
|
},
|
||||||
|
"deasync": {
|
||||||
|
"version": "0.1.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.14.tgz",
|
||||||
|
"integrity": "sha512-wN8sIuEqIwyQh72AG7oY6YQODCxIp1eXzEZlZznBuwDF8Q03Tdy9QNp1BNZXeadXoklNrw+Ip1fch+KXo/+ASw==",
|
||||||
|
"requires": {
|
||||||
|
"bindings": "~1.2.1",
|
||||||
|
"node-addon-api": "^1.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"deasync-promise": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/deasync-promise/-/deasync-promise-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-KyfeR4Fnr07zS6mYecUuwM7dYcI=",
|
||||||
|
"requires": {
|
||||||
|
"deasync": "^0.1.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node-addon-api": {
|
||||||
|
"version": "1.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz",
|
||||||
|
"integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA=="
|
||||||
|
},
|
||||||
|
"nodemailer": {
|
||||||
|
"version": "5.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-5.1.1.tgz",
|
||||||
|
"integrity": "sha512-hKGCoeNdFL2W7S76J/Oucbw0/qRlfG815tENdhzcqTpSjKgAN91mFOqU2lQUflRRxFM7iZvCyaFcAR9noc/CqQ=="
|
||||||
|
},
|
||||||
|
"system-sleep": {
|
||||||
|
"version": "1.3.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/system-sleep/-/system-sleep-1.3.6.tgz",
|
||||||
|
"integrity": "sha512-tBQqFUdmuFQhiXtptJR0Nu+fOL0lGFRML2BD0G02bCCCHAZ09Qmu0M/nPzjJL/qx23zQ7arFMo2/LCvfSsgJZA==",
|
||||||
|
"requires": {
|
||||||
|
"deasync-promise": "1.0.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
package.json
Normal file
19
package.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "me.aski",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "script.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.aski.me/AbdellahASKI/EmsiEmailCheckerSender.git"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"nodemailer": "^5.1.1",
|
||||||
|
"system-sleep": "^1.3.6"
|
||||||
|
}
|
||||||
|
}
|
||||||
76
script.js
Normal file
76
script.js
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
// 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";
|
||||||
|
|
||||||
|
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) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
console.log("Message sent: ", info);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//sleep(1000*60*2);
|
||||||
|
//send("Abdellah","abdellahaski@gmail.com","0707970909").catch(console.error);
|
||||||
|
|
||||||
|
// Preview only available when sending through an Ethereal account
|
||||||
|
//console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
|
||||||
|
|
||||||
|
|
||||||
|
// 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'});
|
||||||
|
// 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);
|
||||||
|
|
||||||
|
});*/
|
||||||
|
|
||||||
|
function sendToStudent(students, index) {
|
||||||
|
student = students[index];
|
||||||
|
stream.write(student);
|
||||||
|
}
|
||||||
|
sendToStudent(students,0);
|
||||||
|
|
||||||
Reference in New Issue
Block a user