Created
September 25, 2015 17:20
-
-
Save 1Marc/5b789c21aabdf2e45fbd to your computer and use it in GitHub Desktop.
Distribute prepaid codes via mailgun
This file contains 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 fs = require('fs'); | |
// npm install csv-parse | |
var parse = require('csv-parse'); | |
// CSV with ONLY the codes you want to give away | |
var prepaid_codes_file = 'giveaway-codes.csv'; | |
var emails_file = 'giveaway-emails.csv'; | |
var Mailgun = require('mailgun').Mailgun; | |
/* CONFIG */ | |
var mg = new Mailgun('YOUR_KEY_HERE'); | |
var sender_name = "YOUR NAME"; | |
var sender_company = "YOUR COMPANY"; | |
var sender_email = "[email protected]"; | |
function createEmailBody(prepaid_code) { | |
return 'Thanks for being a part of ' + sender_company + '! Here\'s a complimentary year of front-end and Node.js training from Frontend Masters.<br><br>'+ | |
'Prepaid code: '+prepaid_code+'<br><br>'+ | |
'Go here to redeem! https://frontendmasters.com/enroll/prepaid/<br><br>'+ | |
'Enjoy,<br>'+ | |
'--<br>'+ | |
sender_name + '<br>'+ | |
sender_company; | |
} | |
function sendEmail(email, body) { | |
mg.sendRaw(sender_name + ' <' + sender_email + '>', | |
[email], | |
'From: ' + sender_name + ' <' + sender_email + '>' + | |
'\nTo: ' + email + | |
'\nContent-Type: text/html; charset=utf-8' + | |
'\nSubject: \ud83d\udd11 Member Access Details' + | |
'\n\n' + body, | |
function(err) { err && console.log(err) }); | |
} | |
var emails_file_parser = parse({delimiter: ','}, function(err, emails){ | |
var prepaid_file_parser = parse({delimiter: ','}, function(err, prepaid_codes){ | |
emails.forEach(function(email,i){ | |
var prepaid_code = prepaid_codes[i][0]; | |
var email_address = email[0]; | |
var email_text = createEmailBody(prepaid_code); | |
// sendEmail(email_address, email_text); | |
console.log(email_address, prepaid_code); | |
}); | |
return; | |
}); | |
fs.createReadStream(__dirname+'/'+prepaid_codes_file).pipe(prepaid_file_parser); | |
}); | |
fs.createReadStream(__dirname+'/'+emails_file).pipe(emails_file_parser); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment