Skip to content

Instantly share code, notes, and snippets.

@1Marc
Created September 25, 2015 17:20
Show Gist options
  • Save 1Marc/5b789c21aabdf2e45fbd to your computer and use it in GitHub Desktop.
Save 1Marc/5b789c21aabdf2e45fbd to your computer and use it in GitHub Desktop.
Distribute prepaid codes via mailgun
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@domain.com";
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