diff --git a/apps/viewer/src/features/blocks/integrations/sendEmail/executeSendEmailBlock.tsx b/apps/viewer/src/features/blocks/integrations/sendEmail/executeSendEmailBlock.tsx index 072f0e8f3..9d7b669c0 100644 --- a/apps/viewer/src/features/blocks/integrations/sendEmail/executeSendEmailBlock.tsx +++ b/apps/viewer/src/features/blocks/integrations/sendEmail/executeSendEmailBlock.tsx @@ -46,7 +46,7 @@ export const executeSendEmailBlock = async ( credentialsId: options.credentialsId, recipients: options.recipients.map(parseVariables(variables)), subject: parseVariables(variables)(options.subject ?? ''), - body: parseVariables(variables)(options.body ?? ''), + body: parseVariables(variables, { escapeHtml: true })(options.body ?? ''), cc: (options.cc ?? []).map(parseVariables(variables)), bcc: (options.bcc ?? []).map(parseVariables(variables)), replyTo: options.replyTo diff --git a/apps/viewer/src/features/variables/parseVariables.ts b/apps/viewer/src/features/variables/parseVariables.ts index 2c0711bef..3761cacbc 100644 --- a/apps/viewer/src/features/variables/parseVariables.ts +++ b/apps/viewer/src/features/variables/parseVariables.ts @@ -6,12 +6,14 @@ export type ParseVariablesOptions = { fieldToParse?: 'value' | 'id' escapeForJson?: boolean takeLatestIfList?: boolean + escapeHtml?: boolean } export const defaultParseVariablesOptions: ParseVariablesOptions = { fieldToParse: 'value', escapeForJson: false, takeLatestIfList: false, + escapeHtml: false, } export const parseVariables = @@ -50,6 +52,8 @@ export const parseVariables = : value ) if (!parsedValue) return dollarSign + '' + if (options.escapeHtml) + return parsedValue.replace(//g, '>') return parsedValue } )