Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const unirest = require('unirest');
- const mimelib = require("mimelib");
- const app = express();
- const nodemailer = require('nodemailer');
- const base64 = require('base-64');
- const utf8 = require('utf8');
- var transporter = nodemailer.createTransport({
- service: 'Gmail',
- auth: {
- user: '4game.redirecter@gmail.com',
- pass: 'test4game'
- }
- });
- let sendedIds = [];
- let emails = [
- 'mrmike@artandcraftentertainment.com',
- 'raymond@artcraftent.com',
- 'samantha@artcraftent.com',
- 'morgan@artcraftent.com',
- 'max@artcraftent.com',
- 'bill@artcraftent.com',
- 'michael@artcraftent.com',
- 'tom@artcraftent.com'
- ];
- const output = '<b>4game Redirecter.</b> <br><br> Perform redirect emails from smtp-mock.test4game.com to your real mail <br><br> API: <br><br>1) /add?email=... <br><br>2) /print';
- app.get('/', function (req, res) {
- res.send(output);
- });
- app.get('', function (req, res) {
- res.send(output);
- });
- app.get('/add', function (req, res) {
- let obj = {};
- obj.email = req.query.email;
- obj.list = [];
- emails.push(obj);
- res.send(`Email ${req.query.email} has been added.`);
- });
- app.get('/delete', function (req, res) {
- for(let i = 0; i < emails.length; i++) {
- if(emails[i].email === req.query.email) {
- emails.splice(i, 1);
- break;
- }
- }
- res.send(`Email ${req.query.email} has been deleted.`);
- });
- app.get('/print', function (req, res) {
- let output = '';
- emails.forEach(email => {
- output += email + '<br>';
- });
- res.send(output);
- });
- app.listen(3001);
- const checkSended = (id, created) => {
- return sendedIds.indexOf(id) > -1 || Math.abs(new Date(created) - new Date()) > 86400000;
- };
- const doRedirect = () => {
- emails.forEach(email => {
- console.log(`REQUEST https://smtp-mock.test4game.com/api/v2/search?kind=to&query=${email}`);
- unirest.get(`https://smtp-mock.test4game.com/api/v2/search?kind=to&query=${email}`)
- .headers({ })
- .send({ })
- .end((response) => {
- for(let i = 0; i < response.body.items.length; i++) {
- const id = response.body.items[i].ID;
- const created = response.body.items[i].Created;
- const subject = mimelib.decodeMimeWord(response.body.items[i].Content.Headers.Subject[0]);
- let msg = '';
- if(response.body.items[i].Content.Headers["Content-Transfer-Encoding"][0] === 'base64') {
- msg = utf8.decode(base64.decode(response.body.items[i].Content.Body));
- }
- msg = mimelib.decodeQuotedPrintable(response.body.items[i].Content.Body);
- if(checkSended(id, created) === false) {
- console.log(`Email with id ${id} was sended to ${email}`);
- transporter.sendMail({
- from: '4game.redirecter@gmail.com',
- to: email,
- subject: subject,
- html: msg
- });
- sendedIds.push(id);
- }
- }
- });
- });
- sleep();
- };
- const sleep = () => {
- setTimeout(doRedirect, 5000);
- };
- doRedirect();
Add Comment
Please, Sign In to add comment