import type { PayloadEmailAdapter } from 'payload'; export type GraphAdapterArgs = { fallbackFromAddress?: string; fallbackFromName?: string; }; /** * Payload email adapter that sends through Microsoft Graph (our Exchange), * using app-only client-credentials auth. Drop-in alternative to * panelSmtpAdapter — same PayloadEmailAdapter contract, so payload.sendEmail * and the form-builder's submission emails work unchanged. * * Split of configuration (deliberate): * - Graph credentials (tenant/client/secret/sender) = AGENCY secrets, from env. * The client never sees or sets them — it's our Exchange, one mailbox * (GRAPH_SENDER, e.g. forms@intecion.pl) for every project. * - From-display + recipient = per-project, from the panel (SiteIntegrations), * so an editor controls how the mail is labelled and where it lands. * * Wiring: email: process.env.GRAPH_CLIENT_ID ? graphAdapter() : panelSmtpAdapter() * * Azure setup (one-time, our side): App registration → Mail.Send APPLICATION * permission → admin consent → in Exchange, grant the app "Send As" on the * shared mailbox GRAPH_SENDER. */ export declare const graphAdapter: (args?: GraphAdapterArgs) => PayloadEmailAdapter;