From 948c98b66860165d09af0c23e7c1a8b4b0d668e6 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Sun, 8 Nov 2015 11:57:04 -0500 Subject: [PATCH] adding plaintext email via html-to-text module --- package.json | 1 + src/emailer.js | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 529470c731..80a08c6cb6 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "express-session": "^1.8.2", "gravatar": "^1.1.0", "heapdump": "^0.3.0", + "html-to-text": "1.3.2", "jimp": "^0.2.5", "less": "^2.0.0", "logrotate-stream": "^0.2.3", diff --git a/src/emailer.js b/src/emailer.js index fc96081b6f..2e1318d0cc 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -4,12 +4,16 @@ var async = require('async'), winston = require('winston'), templates = require('templates.js'), nodemailer = require('nodemailer'), + htmlToText = require('html-to-text'), User = require('./user'), Plugins = require('./plugins'), meta = require('./meta'), translator = require('../public/src/modules/translator'), + transports = { + direct: nodemailer.createTransport('direct') + }, app; (function(Emailer) { @@ -54,9 +58,6 @@ var async = require('async'), html: function(next) { renderAndTranslate('emails/' + template, params, lang, next); }, - plaintext: function(next) { - renderAndTranslate('emails/' + template + '_plaintext', params, lang, next); - }, subject: function(next) { translator.translate(params.subject, lang, function(translated) { next(null, translated); @@ -65,13 +66,16 @@ var async = require('async'), }, next); }, function (results, next) { + var data = { to: email, from: meta.config['email:from'] || 'no-reply@localhost.lan', from_name: meta.config['email:from_name'] || 'NodeBB', subject: results.subject, html: results.html, - plaintext: results.plaintext, + plaintext: htmlToText.fromString(results.html, { + ignoreImage: true + }), template: template, uid: params.uid, pid: params.pid, @@ -96,8 +100,7 @@ var async = require('async'), data.text = data.plaintext; delete data.plaintext; - nodemailer.mail(data); - callback(null); + transports.direct.sendMail(data, callback); }; function render(tpl, params, next) {