From c9dcfc3c23c240fce8348fc0347300faea64899c Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Thu, 2 Oct 2014 11:10:13 -0700 Subject: [PATCH] Render email using ejs templates --- src/mail_templates/welcome_html.ejs | 1 + src/mail_templates/welcome_text.ejs | 2 ++ src/mailer.js | 15 ++++++++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 src/mail_templates/welcome_html.ejs create mode 100644 src/mail_templates/welcome_text.ejs diff --git a/src/mail_templates/welcome_html.ejs b/src/mail_templates/welcome_html.ejs new file mode 100644 index 000000000..b0e68cd3f --- /dev/null +++ b/src/mail_templates/welcome_html.ejs @@ -0,0 +1 @@ +html: You can check out anytime you like, but you can never leave diff --git a/src/mail_templates/welcome_text.ejs b/src/mail_templates/welcome_text.ejs new file mode 100644 index 000000000..7ef2bfda7 --- /dev/null +++ b/src/mail_templates/welcome_text.ejs @@ -0,0 +1,2 @@ +You can check out anytime you like, but you can never leave + diff --git a/src/mailer.js b/src/mailer.js index 6ee56bbfd..96a4e5af2 100644 --- a/src/mailer.js +++ b/src/mailer.js @@ -9,7 +9,10 @@ var nodemailer = require('nodemailer'), aync = require('async'), digitalocean = require('./digitalocean.js'), cloudron = require('./cloudron.js'), - config = require('../config.js'); + ejs = require('ejs'), + safe = require('safetydance'), + config = require('../config.js'), + path = require('path'); exports = module.exports = { initialize: initialize, @@ -21,6 +24,8 @@ exports = module.exports = { adminChanged: adminChanged }; +var MAIL_TEMPLATES_DIR = path.join(__dirname, 'mail_templates'); + var transport = nodemailer.createTransport(smtpTransport({ host: config.mailServer, port: 25 @@ -82,6 +87,10 @@ function enqueue(mailOptions) { mailQueue.push(mailOptions); } +function render(templateFile, params) { + return ejs.render(safe.fs.readFileSync(path.join(MAIL_TEMPLATES_DIR, templateFile), params)); +} + function adminAdded(user) { debug('Sending mail for adminAdded'); @@ -89,8 +98,8 @@ function adminAdded(user) { from: config.mailUsername, to: user.email, subject: 'Welcome to Cloudron', - text: 'You can check out anytime you like, but you can never leave', - html: 'You can check out anytime you like, but you can never leave' + text: render('welcome_text.ejs', { }), + html: render('welcome_html.ejs', { }) }; enqueue(mailOptions);