Skip to content

Instantly share code, notes, and snippets.

@gaspan
Last active October 17, 2018 09:48
Show Gist options
  • Save gaspan/eedfbf31a7ad6bd5a0464fd1438808f3 to your computer and use it in GitHub Desktop.
Save gaspan/eedfbf31a7ad6bd5a0464fd1438808f3 to your computer and use it in GitHub Desktop.
email-blast.js
var express = require('express');
var router = express.Router();
var nodeMailer = require('nodemailer');
var domain = 'sandbox974fc87e87ac437cb22bbb7286e866ee.mailgun.org';
var mailGun = require('mailgun-js')({ apiKey: "0c9d04d02276c4b87efec3414f4d2bb2-bd350f28-8b4e530e", domain: domain });
var mailComposer = require('nodemailer/lib/mail-composer');
var getEmailBlats = require('./email-blast.model');
var xlsx = require('xlsx');
var _ = require('underscore');
router.post('/uploadData', function(req, res, next) {
var subject = req.body.subject //
var html = req.body.html //
var body
var status = 0
var file = req.body.fileEncode;
wb = xlsx.read(file)
dataxls = xlsx.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
params = [];
dateToday = new Date();
logMessage = [];
logInsert = [];
for (var i = 0; i < dataxls.length; i++) {
var customerId =dataxls[i]['customer_id']
var fullName = dataxls[i]['full_name'] //
var address = dataxls[i]['address']
var phone = dataxls[i]['phone_1'] //
var email = dataxls[i]['email'] //
var provinsi = dataxls[i]['provinsi']
var kota = dataxls[i]['kota']
var title = dataxls[i]['title']
getEmailBlats.insertFromExcel(fullName,email,phone,subject,html,status).then(datas => {})
.catch(err => {
console.log('not insert')
})
}
res.json('data telah diupload')
})
router.post('/batchSending', function (req, res, next) {
var email
getEmailBlats.checkEmailStatus().then(data => {
if (data.length === 0) {
console.log('Semua email berstatus 1 / tidak ada email yang dikirim')
res.json('Semua email berstatus 1 / tidak ada email yang dikirim')
} else {
var lists = {}
var allData = []
var listMail = []
//push data email, nama, id ke array
console.log('banyak email yang dikirim: ' + data.length)
console.log(data)
for (var i = 0; i < data.length; i++) {
id = data[i].id
name = data[i].name
this.email = data[i].email //pas data dari sini
subject = data[i].subject
htmlBody = data[i].body
var mailOptions = {
from: 'BUKKU.ID" <noreply@bukku.id>',
to: data[i].email,
subject: data[i].subject,
text: 'Hai, '+ name + ', coba sending batch, memperbaiki code kalo udah sampai 3 = ok',
html: data[i].body
};
var mails = new mailComposer(mailOptions);
mails.compile().build((err, message) => {
var dataToSend = {
to: this.email, // dimasukan ke sini
message: message.toString('ascii')
};
mailGun.messages().sendMime(dataToSend, (sendError, body) => {
if (sendError) {
console.log(sendError);
return;
} else {
console.log(body)
}
});
});
// status set 1
getEmailBlats.updateEmailBlatsStatus(data[i].id).then(data => {
console.log('updated status')
})
.catch(err => {
console.log(err)
})
}
var successQuee = 'Semua email telah masuk ke antrian (' + data.length + ')';
res.json(successQuee);
}
}).catch(err => {
res.json(err)
res.status(500)
})
});
module.exports = router;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment