summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorEsurio/1673beta <60435625+1673beta@users.noreply.github.com>2024-09-21 18:18:52 +0900
committerGitHub <noreply@github.com>2024-09-21 18:18:52 +0900
commitd4d15f338ed636d83a7cafc9a4d1530da2cd748b (patch)
tree4abef9e99434652caf69cd2b382bdad21d4c53f2 /packages
parentBump version to 2024.9.0-alpha.1 (diff)
downloadmisskey-d4d15f338ed636d83a7cafc9a4d1530da2cd748b.tar.gz
misskey-d4d15f338ed636d83a7cafc9a4d1530da2cd748b.tar.bz2
misskey-d4d15f338ed636d83a7cafc9a4d1530da2cd748b.zip
fix: EmailServiceでインラインスタイルを適用するように (#14600)
Co-authored-by: Esurio <esurio@esurio1673.net>
Diffstat (limited to 'packages')
-rw-r--r--packages/backend/package.json1
-rw-r--r--packages/backend/src/core/EmailService.ts23
2 files changed, 15 insertions, 9 deletions
diff --git a/packages/backend/package.json b/packages/backend/package.json
index a06fd9156b..aee3854ef3 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -132,6 +132,7 @@
"json5": "2.2.3",
"jsonld": "8.3.2",
"jsrsasign": "11.1.0",
+ "juice": "11.0.0",
"meilisearch": "0.41.0",
"mfm-js": "0.24.0",
"microformats-parser": "2.0.2",
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}`);