26 lines
829 B
JavaScript
26 lines
829 B
JavaScript
|
module.exports = {
|
||
|
send: function(emailSettings, emailTemplateVars, smtpTransport, cb){
|
||
|
var parsedTemplate = parseTemplate(emailSettings.htmlTemplate, emailTemplateVars);
|
||
|
var parsedSubject = parseTemplate(emailSettings.body, emailTemplateVars);
|
||
|
var mailOptions = {
|
||
|
from: emailSettings.from,
|
||
|
cc: emailSettings.recipients,
|
||
|
subject: parsedSubject,
|
||
|
html: parsedTemplate
|
||
|
}
|
||
|
|
||
|
smtpTransport.sendMail(mailOptions, cb);
|
||
|
},
|
||
|
|
||
|
parseTemplate: function(emailTemplate, emailAttrs){
|
||
|
var resolvedTemplate = emailTemplate;
|
||
|
Object.keys(emailAttrs).forEach(function (key) {
|
||
|
resolvedTemplate = replaceTemplateVal(key, emailAttrs[key], resolvedTemplate);
|
||
|
});
|
||
|
return resolvedTemplate;
|
||
|
},
|
||
|
|
||
|
replaceTemplateVal: function(key, val, template){
|
||
|
return template.replace( new RegExp('${' + key + '}', 'g'), value )
|
||
|
}
|
||
|
}
|