diff --git a/api/package.json b/api/package.json index a442d81b75..7b6859409a 100644 --- a/api/package.json +++ b/api/package.json @@ -125,6 +125,7 @@ "otplib": "^12.0.1", "pino": "^6.11.3", "pino-colada": "^2.1.0", + "prettier": "^2.3.1", "qs": "^6.9.4", "rate-limiter-flexible": "^2.2.2", "resolve-cwd": "^3.0.0", diff --git a/api/src/services/mail/index.ts b/api/src/services/mail/index.ts index 4569a5870e..42c3c16f03 100644 --- a/api/src/services/mail/index.ts +++ b/api/src/services/mail/index.ts @@ -9,6 +9,7 @@ import logger from '../../logger'; import { AbstractServiceOptions, Accountability, SchemaOverview } from '../../types'; import getMailer from '../../mailer'; import { Transporter, SendMailOptions } from 'nodemailer'; +import prettier from 'prettier'; const liquidEngine = new Liquid({ root: [path.resolve(env.EXTENSIONS_PATH, 'templates'), path.resolve(__dirname, 'templates')], @@ -61,6 +62,11 @@ export class MailService { html = await this.renderTemplate(template.name, templateData); } + if (typeof html === 'string') { + // Some email clients start acting funky when line length exceeds 75 characters. See #6074 + html = prettier.format(html as string, { parser: 'html', printWidth: 70, tabWidth: 0 }); + } + try { await this.mailer.sendMail({ ...emailOptions, from, html }); } catch (error) { diff --git a/package-lock.json b/package-lock.json index 62f64018cc..1e9a73253d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -116,6 +116,7 @@ "otplib": "^12.0.1", "pino": "^6.11.3", "pino-colada": "^2.1.0", + "prettier": "^2.3.1", "qs": "^6.9.4", "rate-limiter-flexible": "^2.2.2", "resolve-cwd": "^3.0.0", @@ -72858,6 +72859,7 @@ "pg": "^8.6.0", "pino": "^6.11.3", "pino-colada": "^2.1.0", + "prettier": "*", "qs": "^6.9.4", "rate-limiter-flexible": "^2.2.2", "resolve-cwd": "^3.0.0",