diff --git a/app/lib/server/functions/notifications/email.js b/app/lib/server/functions/notifications/email.js index 42fbe7143e264..75dd66c28c94a 100644 --- a/app/lib/server/functions/notifications/email.js +++ b/app/lib/server/functions/notifications/email.js @@ -134,7 +134,7 @@ export function getEmailData({ const emailSubject = Mailer.replace(settings.get(subjectKey), { user: username, room: roomTypes.getRoomName(room.t, room), - }); + }, ['room']); const content = getEmailContent({ message, user: receiver, diff --git a/app/mailer/server/api.js b/app/mailer/server/api.js index da22acc8208a6..38b474f2b8921 100644 --- a/app/mailer/server/api.js +++ b/app/mailer/server/api.js @@ -23,9 +23,9 @@ settings.get('Language', (key, value) => { lng = value || 'en'; }); -export const replacekey = (str, key, value = '') => str.replace(new RegExp(`(\\[${ key }\\]|__${ key }__)`, 'igm'), s.escapeHTML(value)); +export const replacekey = (str, key, value = '', nonEscapeKeys = []) => str.replace(new RegExp(`(\\[${ key }\\]|__${ key }__)`, 'igm'), nonEscapeKeys && nonEscapeKeys.includes(key) ? value : s.escapeHTML(value)); export const translate = (str) => str.replace(/\{ ?([^\} ]+)(( ([^\}]+))+)? ?\}/gmi, (match, key) => TAPi18n.__(key, { lng })); -export const replace = function replace(str, data = {}) { +export const replace = function replace(str, data = {}, nonEscapeKeys = []) { if (!str) { return ''; } @@ -39,7 +39,7 @@ export const replace = function replace(str, data = {}) { }, ...data, }; - return Object.entries(options).reduce((ret, [key, value]) => replacekey(ret, key, value), translate(str)); + return Object.entries(options).reduce((ret, [key, value]) => replacekey(ret, key, value, nonEscapeKeys), translate(str)); }; const nonEscapeKeys = ['room_path'];