Skip to content

basalt / mailer/src / Mailer

Class: Mailer ​

Defined in: mailer/src/index.ts:65

Constructors ​

Constructor ​

> new Mailer(driver, options?): Mailer

Defined in: mailer/src/index.ts:69

Parameters ​

driver ​

MailDriver

options? ​

MailerOptions = {}

Returns ​

Mailer

Methods ​

deliver() ​

> deliver(message): Promise<void>

Defined in: mailer/src/index.ts:98

Sends a resolved message directly through the driver — used by queue workers.

Parameters ​

message ​

ResolvedMail

Returns ​

Promise<void>


resolve() ​

> resolve<T>(mail, data, envelope): ResolvedMail

Defined in: mailer/src/index.ts:106

Renders a mail without sending — used by tests and the future preview server.

Type Parameters ​

T ​

T

Parameters ​

mail ​

MailDefinition<T>

data ​

T

envelope ​

Envelope

Returns ​

ResolvedMail


send() ​

> send<T>(mail, ...rest): Promise<void>

Defined in: mailer/src/index.ts:87

Renders and sends (or enqueues) a typed mail.

Type Parameters ​

T ​

T

Parameters ​

mail ​

MailDefinition<T>

rest ​

...T extends void ? [Envelope] : [T, Envelope]

Returns ​

Promise<void>


useQueue() ​

> useQueue(dispatch): this

Defined in: mailer/src/index.ts:81

Routes deliveries through a dispatcher instead of sending inline — typically a @basaltkit/queue job that calls mailer.deliver(message):

const SendMail = defineJob({ name: 'mailer.send', handle: (m) => mailer.deliver(m) }) mailer.useQueue((m) => SendMail.dispatch(m))

Parameters ​

dispatch ​

(message) => Promise<void>

Returns ​

this

Released under the MIT License.