var email = require("emailjs"), ejs = require("ejs"), fs = require("fs"), util = require("../util"); var mail = { from: 'VValls ', templates: {}, init: function(){ var names = ["welcome","password","collaborator"].forEach(function(name){ mail.templates[name] = {}; var types = ["text","html"].forEach(function(type){ fs.readFile("views/mail/" + name + "." + type + ".ejs", function(err, data){ mail.templates[name][type] = ejs.compile(data.toString()) }) }) }) }, connect: function(){ var server = email.server.connect({ user: process.env.OKFOCUS_EMAIL_USERNAME, password: process.env.OKFOCUS_EMAIL_PASSWORD, host: "smtp.sendgrid.net", ssl: true }) return server }, send: function(msg, cb){ var server = mail.connect() server.send(msg, cb) }, welcome: function(user, cb){ var message = { text: mail.templates.welcome.text(user), from: mail.from, to: user.email, subject: "Welcome to VValls", attachment: [ { data: mail.templates.welcome.html(user), alternative: true }, ] }; mail.send(message, cb) console.log("sent welcome email to", user.email) }, forgotPassword: function(user, cb){ var message = { text: mail.templates.password.text(user), from: mail.from, to: user.email, subject: "Recover your password", attachment: [ { data: mail.templates.password.html(user), alternative: true }, ] } mail.send(message, cb) console.log("sent password email to", user.email) }, collaborator: function(project, user, collaborator, cb){ var data = { projectSlug: project.slug, projectName: project.name, nonce: collaborator.nonce, username: user.username, } var message = { text: mail.templates.collaborator.text(data), from: mail.from, to: collaborator.email, subject: "Join " + data.username + " on " + data.projectName, attachment: [ { data: mail.templates.collaborator.html(data), alternative: true }, ] } mail.send(message, cb) console.log("sent collaborator email to", collaborator.email) }, } module.exports = mail