· 6 years ago · Sep 16, 2019, 08:24 AM
1const publicIp = require('public-ip');
2const cron = require('node-cron');
3const nodemailer = require('nodemailer');
4
5const transporter = nodemailer.createTransport({
6 host: 'smtp.gmail.com',
7 port: 465,
8 secure: true,
9 auth: {
10 user: '*******@gmail.com',
11 pass: '**************'
12 }
13});
14
15
16function sendMail(ip) {
17 const mailOptions = {
18 from: '"IP NOTIFIER" <*******@gmail.com>', // sender address
19 to: 'mushfau@gmail.com',
20 subject: 'IP Changed',
21 text: ip,
22 html: ip
23 };
24
25 transporter.sendMail(mailOptions, function (error, info) {
26 if (error) {
27 console.log(error);
28 } else {
29 console.log('Message sent: %s', info.messageId);
30 }
31 });
32}
33
34
35let IP = "";
36
37cron.schedule('*/10 * * * * *', () => {
38 (async () => {
39 let NEW_IP = await publicIp.v4();
40
41 if (IP !== NEW_IP) {
42 IP = NEW_IP
43 sendMail(IP);
44 } else {
45 console.log("no change");
46 }
47 })();
48
49});