From 906ea764ac8fb0eb7b01d6142e4cef20b8791fa8 Mon Sep 17 00:00:00 2001 From: maro Date: Wed, 16 Sep 2026 21:35:40 +0200 Subject: [PATCH] feat: configure Payload SMTP email adapter --- lib/email/payloadAdapter.ts | 15 +++++++++++++++ payload.config.ts | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 lib/email/payloadAdapter.ts diff --git a/lib/email/payloadAdapter.ts b/lib/email/payloadAdapter.ts new file mode 100644 index 0000000..24180a5 --- /dev/null +++ b/lib/email/payloadAdapter.ts @@ -0,0 +1,15 @@ +import type { PayloadEmailAdapter } from "payload"; +import { getMailFrom, getMailTransport } from "./transport"; + +/** Connects Payload's built-in auth emails to the same SMTP transport as ANOUMA's own emails. */ +export const payloadEmailAdapter: PayloadEmailAdapter = () => ({ + name: "anouma-smtp", + defaultFromAddress: process.env.SMTP_USER || "support@anouma.org", + defaultFromName: "ANOUMA", + sendEmail: async (message) => { + return getMailTransport().sendMail({ + ...message, + from: message.from || getMailFrom(), + }); + }, +}); diff --git a/payload.config.ts b/payload.config.ts index aea81b8..7271f48 100644 --- a/payload.config.ts +++ b/payload.config.ts @@ -30,6 +30,7 @@ import { BookingSettings } from "@/globals/BookingSettings"; import { SEOSettings } from "@/globals/SEOSettings"; import { CookieSettings } from "@/globals/CookieSettings"; import { AnalyticsSettings } from "@/globals/AnalyticsSettings"; +import { payloadEmailAdapter } from "@/lib/email/payloadAdapter"; const filename = fileURLToPath(import.meta.url); const dirname = path.dirname(filename); @@ -94,6 +95,7 @@ export default buildConfig({ AnalyticsSettings, ], editor: lexicalEditor(), + email: payloadEmailAdapter, graphQL: { disablePlaygroundInProduction: true, disableIntrospectionInProduction: true,