Last active
October 17, 2018 09:48
-
-
Save gaspan/eedfbf31a7ad6bd5a0464fd1438808f3 to your computer and use it in GitHub Desktop.
email-blast.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" <[email protected]>', | |
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