From 48c3745fa8003c887c96b72d05c9aac82a041824 Mon Sep 17 00:00:00 2001 From: aster <137767097+aster-void@users.noreply.github.com> Date: Thu, 12 Jun 2025 17:58:55 +0900 Subject: [PATCH] fix: fix email format: now properly breaks newline --- server/email/hooks/onMessageSend.ts | 26 ++++++++++++++++++++++++-- server/email/internal/prefixes.ts | 14 +++++++------- server/email/verification/utils.ts | 4 +++- server/routes/chat.ts | 7 ++++++- 4 files changed, 40 insertions(+), 11 deletions(-) diff --git a/server/email/hooks/onMessageSend.ts b/server/email/hooks/onMessageSend.ts index 02a8784..a81d56f 100644 --- a/server/email/hooks/onMessageSend.ts +++ b/server/email/hooks/onMessageSend.ts @@ -7,7 +7,20 @@ import { EMAIL_SUFFIX_CONTACT } from "../internal/prefixes.ts"; const EMAIL_THROTTLE_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes -export async function onMessageSend(c: Context, fromName: string, toId: string, message: Message) { +export async function onMessageSend( + c: Context, + { + fromName, + inRoomId, + toId, + message, + }: { + fromName: string; + inRoomId: string; + toId: string; + message: Message; + }, +) { const receiver = await prisma.user.findUnique({ where: { id: toId }, select: { @@ -34,8 +47,14 @@ export async function onMessageSend(c: Context, fromName: string, toId: string, // - if it's first message or not // - user's selected language const body = ` -New message arrived from ${fromName}: +
+ New message arrived from ${fromName}: +
+${escapeHTML(message.content)} +
+ +See this on ut-bridge ${EMAIL_SUFFIX_CONTACT} `; @@ -79,6 +98,9 @@ const suspiciousChars = [ ['"', """], ["<", "<"], [">", ">"], + + // postprocess: make newlines into
+ ---
+ UT-Bridge https://ut-bridge.utcode.net
+ Created by ut.code();
+ Contact: contact@utcode.net
+ ---
+
+ Visit this page to verify your email: ${url} +
${EMAIL_SUFFIX_CONTACT} `; diff --git a/server/routes/chat.ts b/server/routes/chat.ts index 6a5aa03..8aee2af 100644 --- a/server/routes/chat.ts +++ b/server/routes/chat.ts @@ -369,7 +369,12 @@ const router = new Hono() // broadcast mails for (const receiverId of await receivers) { if (receiverId !== requester) { - await onMessageSend(c, sender.name, receiverId, message); + await onMessageSend(c, { + fromName: sender.name, + inRoomId: roomId, + toId: receiverId, + message, + }); } } })();