Kaizen
Browse modulesInsightsinsights/schedulingInterfaces

Interface: EmailSender

Defined in: server/insights/scheduling/email-sender.ts:17

The email-delivery PORT for scheduled reports. Taproot renders the report and hands this a finished message; the consumer implements send over their own transport (SES, nodemailer/SMTP, Resend, Postmark, …). This mirrors the library's other outbound side-effects — the forms FileStore and the auth sendXEmail callbacks — none of which taproot fulfils itself. Keeping it a port is why the scheduling module pulls in no mail dependency.

send MUST reject if delivery fails, so the worker records a failed run and BullMQ's retry/backoff re-attempts. A resolved promise is taken as "handed off to the transport" — at-least-once, not exactly-once. Recipients are always carried in bcc, preventing address disclosure while preserving one transport handoff (and therefore one retry boundary).

Methods

send()

send(message: ReportEmailMessage): Promise<void>;

Defined in: server/insights/scheduling/email-sender.ts:18

Parameters

ParameterType
messageReportEmailMessage

Returns

Promise<void>

On this page