From 3425986902508acb6ca2a37be3c012a159e83231 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt <marcelo.schmidt@gmail.com> Date: Wed, 11 May 2016 10:35:42 -0300 Subject: [PATCH] Add header and footer to e-mails --- .../server/methods/mailMessages.coffee | 6 +++++- packages/rocketchat-lib/server/lib/sendEmailOnMessage.js | 6 +++++- .../rocketchat-lib/server/methods/sendSMTPTestEmail.coffee | 5 ++++- .../rocketchat-mailer/server/functions/sendMail.coffee | 7 +++++-- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee b/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee index ed2d4a29002..d32bc456d5a 100644 --- a/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee +++ b/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee @@ -40,6 +40,10 @@ Meteor.methods Function(localeFn)() html = "" + + header = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Header') || "") + footer = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Footer') || "") + RocketChat.models.Messages.findByRoomIdAndMessageIds(data.rid, data.messages, { sort: { ts: 1 } }).forEach (message) -> dateTime = moment(message.ts).locale(data.language).format('L LT') html += "<p style='margin-bottom: 5px'><b>#{message.u.username}</b> <span style='color: #aaa; font-size: 12px'>#{dateTime}</span><br />" + RocketChat.Message.parse(message, data.language) + "</p>" @@ -50,7 +54,7 @@ Meteor.methods from: RocketChat.settings.get('From_Email') replyTo: email subject: data.subject - html: html + html: header + html + footer console.log 'Sending email to ' + emails.join(', ') diff --git a/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js b/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js index 61d279b2301..f297548f559 100644 --- a/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js +++ b/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js @@ -37,7 +37,11 @@ RocketChat.callbacks.add('afterSaveMessage', function(message, room) { message.html = message.html.replace(token.token, token.text); }); } - message.html = message.html.replace(/\n/gm, '<br/>'); + + + var header = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Header') || ''); + var footer = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Footer') || ''); + message.html = header + message.html.replace(/\n/gm, '<br/>') + footer; RocketChat.models.Subscriptions.findWithSendEmailByRoomId(room._id).forEach((sub) => { switch (sub.emailNotifications) { diff --git a/packages/rocketchat-lib/server/methods/sendSMTPTestEmail.coffee b/packages/rocketchat-lib/server/methods/sendSMTPTestEmail.coffee index e546ed4ad1d..e87f70bdd30 100644 --- a/packages/rocketchat-lib/server/methods/sendSMTPTestEmail.coffee +++ b/packages/rocketchat-lib/server/methods/sendSMTPTestEmail.coffee @@ -9,11 +9,14 @@ Meteor.methods this.unblock() + header = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Header') || ''); + footer = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Footer') || ''); + Email.send to: user.emails[0].address from: RocketChat.settings.get('From_Email') subject: "SMTP Test Email" - html: "You have successfully sent an email" + html: header + "<p>You have successfully sent an email</p>" + footer console.log 'Sending email to ' + user.emails[0].address diff --git a/packages/rocketchat-mailer/server/functions/sendMail.coffee b/packages/rocketchat-mailer/server/functions/sendMail.coffee index 78199eb59cf..d6fa86beb87 100644 --- a/packages/rocketchat-mailer/server/functions/sendMail.coffee +++ b/packages/rocketchat-mailer/server/functions/sendMail.coffee @@ -9,6 +9,9 @@ Mailer.sendMail = (from, subject, body, dryrun, query) -> if body.indexOf('[unsubscribe]') is -1 throw new Meteor.Error 'error-missing-unsubscribe-link', 'You must provide the [unsubscribe] link.', { function: 'Mailer.sendMail' } + header = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Header') || ''); + footer = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Footer') || ''); + userQuery = { "mailer.unsubscribed": { $exists: 0 } } if query userQuery = { $and: [ userQuery, EJSON.parse(query) ] } @@ -32,7 +35,7 @@ Mailer.sendMail = (from, subject, body, dryrun, query) -> to: email from: from subject: subject - html: html + html: header + html + footer console.log 'Sending email to ' + email @@ -55,6 +58,6 @@ Mailer.sendMail = (from, subject, body, dryrun, query) -> to: email from: from subject: subject - html: html + html: header + html + footer console.log 'Sending email to ' + email -- GitLab