node-email-verificator
Version:
A simple way of email confirmation by sending a confirmation code to the client for verificatiion
73 lines (59 loc) • 1.83 kB
JavaScript
const nodemailer = require('nodemailer');
const fs = require('fs');
const path = require('path')
// Email Template Style
const styles = require('./styles');
// Configuration Declaration
let username;
let smtp;
let password;
let coded = '';
// Store (Code) Data
const verification = fs.readFileSync(path.join(__dirname, 'store.txt'), 'UTF-8', function (err, data) {
if (err) throw err;
return data;
});
// Module Object
const nev = {
//Configuration Declaration
config:(service, user, pass) => {
smtp = service;
username = user;
password = pass;
return true
},
send: function (email) {
// Random 5-6digit code generator
coded = Math.floor(Math.random() * 903192);
console.log('Mailing *********************');
// Storing code for loss prevention
fs.writeFile(path.join(__dirname, 'store.txt'), coded, function (err) {
if (err) throw err;
});
//Sending Email Using Nodemailer
var transporter = nodemailer.createTransport({
service: smtp,
auth: {
user: username,
pass: password
}
});
var mailOptions = {
from: username,
to: email,
subject: 'EMAIL CONFIRMATION',
html: styles.text(coded),
text: styles.text(coded)
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log('Error Sending Verification Code')
} else {
return true;
}
});
},
//Verification Function
verify: code => code === parseInt(verification)
}
module.exports = nev