diff options
| author | Esurio/1673beta <60435625+1673beta@users.noreply.github.com> | 2024-09-21 18:18:52 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-21 18:18:52 +0900 |
| commit | d4d15f338ed636d83a7cafc9a4d1530da2cd748b (patch) | |
| tree | 4abef9e99434652caf69cd2b382bdad21d4c53f2 /packages/backend/src/core/EmailService.ts | |
| parent | Bump version to 2024.9.0-alpha.1 (diff) | |
| download | sharkey-d4d15f338ed636d83a7cafc9a4d1530da2cd748b.tar.gz sharkey-d4d15f338ed636d83a7cafc9a4d1530da2cd748b.tar.bz2 sharkey-d4d15f338ed636d83a7cafc9a4d1530da2cd748b.zip | |
fix: EmailServiceでインラインスタイルを適用するように (#14600)
Co-authored-by: Esurio <esurio@esurio1673.net>
Diffstat (limited to 'packages/backend/src/core/EmailService.ts')
| -rw-r--r-- | packages/backend/src/core/EmailService.ts | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/packages/backend/src/core/EmailService.ts b/packages/backend/src/core/EmailService.ts index 435dbbae28..37fa58bb65 100644 --- a/packages/backend/src/core/EmailService.ts +++ b/packages/backend/src/core/EmailService.ts @@ -5,6 +5,7 @@ import { URLSearchParams } from 'node:url'; import * as nodemailer from 'nodemailer'; +import juice from 'juice'; import { Inject, Injectable } from '@nestjs/common'; import { validate as validateEmail } from 'deep-email-validator'; import { MetaService } from '@/core/MetaService.js'; @@ -61,14 +62,7 @@ export class EmailService { } : undefined, } as any); - try { - // TODO: htmlサニタイズ - const info = await transporter.sendMail({ - from: meta.email!, - to: to, - subject: subject, - text: text, - html: `<!doctype html> + const htmlContent = `<!doctype html> <html> <head> <meta charset="utf-8"> @@ -147,7 +141,18 @@ export class EmailService { <a href="${ this.config.url }">${ this.config.host }</a> </nav> </body> -</html>`, +</html>`; + + const inlinedHtml = juice(htmlContent); + + try { + // TODO: htmlサニタイズ + const info = await transporter.sendMail({ + from: meta.email!, + to: to, + subject: subject, + text: text, + html: inlinedHtml, }); this.logger.info(`Message sent: ${info.messageId}`); |