From e9f707b10b81d9759243473dd03fa463573d0772 Mon Sep 17 00:00:00 2001 From: 0-Zz-ang Date: Fri, 26 Sep 2025 16:45:59 +0900 Subject: (박서영)이메일발신인조회페이지 생성 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/mail/email-log.ts | 24 ++++++++++++++++++++++++ lib/mail/sendEmail.ts | 9 +++++++++ 2 files changed, 33 insertions(+) create mode 100644 lib/mail/email-log.ts (limited to 'lib/mail') diff --git a/lib/mail/email-log.ts b/lib/mail/email-log.ts new file mode 100644 index 00000000..bb11aed9 --- /dev/null +++ b/lib/mail/email-log.ts @@ -0,0 +1,24 @@ +import db from "@/db/db"; +import { emailLogs } from "@/db/schema/emailLogs"; + +export type CreateEmailLogParams = { + from: string; + to: string; + cc?: string | string[]; + subject: string; +}; + +export async function createEmailLog(params: CreateEmailLogParams): Promise { + const { from, to, cc, subject } = params; + + const ccValue = Array.isArray(cc) ? cc.join(", ") : cc ?? null; + + await db.insert(emailLogs).values({ + from, + to, + cc: ccValue ?? undefined, + subject, + }); +} + + diff --git a/lib/mail/sendEmail.ts b/lib/mail/sendEmail.ts index 408f6e40..3a4d2591 100644 --- a/lib/mail/sendEmail.ts +++ b/lib/mail/sendEmail.ts @@ -1,5 +1,6 @@ import { useTranslation } from '@/i18n'; import { transporter } from './mailer'; +import { createEmailLog } from '@/lib/mail/email-log'; import db from '@/db/db'; import { templateDetailView } from '@/db/schema'; import { eq } from 'drizzle-orm'; @@ -95,6 +96,14 @@ export async function sendEmail({ template }); + // 이메일 발신 이력 로깅 (최소 필드만 저장) + await createEmailLog({ + from: fromAddress, + to, + cc, + subject: renderedSubject, + }); + return result; } catch (error) { -- cgit v1.2.3