Skip to main content

Email Plugin Types

EventWithContext

A VendureEvent which also includes a ctx property containing the current RequestContext, which is used to determine the channel and language to use when generating the email.

Signature
type EventWithContext = VendureEvent & { ctx: RequestContext }

EventWithAsyncData

A VendureEvent with a RequestContext and a data property which contains the value resolved from the EmailEventHandler.loadData() callback.

Signature
type EventWithAsyncData<Event extends EventWithContext, R> = Event & { data: R }

EmailDetails

The final, generated email details to be sent.

Signature
interface EmailDetails<Type extends 'serialized' | 'unserialized' = 'unserialized'> {
from: string;
recipient: string;
subject: string;
body: string;
attachments: Array<Type extends 'serialized' ? SerializedAttachment : Attachment>;
cc?: string;
bcc?: string;
replyTo?: string;
}

from

property
string

recipient

property
string

subject

property
string

body

property
string

attachments

property
Array<Type extends 'serialized' ? SerializedAttachment : Attachment>

cc

property
string

bcc

property
string

replyTo

property
string

LoadDataFn

A function used to load async data for use by an EmailEventHandler.

Signature
type LoadDataFn<Event extends EventWithContext, R> = (context: {
event: Event;
injector: Injector;
}) => Promise<R>

EmailAttachment

An object defining a file attachment for an email. Based on the object described here in the Nodemailer docs, but only uses the path property to define a filesystem path or a URL pointing to the attachment file.

Signature
type EmailAttachment = Omit<Attachment, 'raw'> & { path?: string }

SetTemplateVarsFn

A function used to define template variables available to email templates. See EmailEventHandler.setTemplateVars().

Signature
type SetTemplateVarsFn<Event> = (
event: Event,
globals: { [key: string]: any },
) => { [key: string]: any }

SetAttachmentsFn

A function used to define attachments to be sent with the email. See https://nodemailer.com/message/attachments/ for more information about how attachments work in Nodemailer.

Signature
type SetAttachmentsFn<Event> = (event: Event) => EmailAttachment[] | Promise<EmailAttachment[]>

SetSubjectFn

A function used to define the subject to be sent with the email.

Signature
type SetSubjectFn<Event> = (
event: Event,
ctx: RequestContext,
injector: Injector,
) => string | Promise<string>

OptionalAddressFields

Optional address-related fields for sending the email.

Signature
interface OptionalAddressFields {
cc?: string;
bcc?: string;
replyTo?: string;
}

cc

property
string

Comma separated list of recipients email addresses that will appear on the Cc: field

bcc

property
string

Comma separated list of recipients email addresses that will appear on the Bcc: field

replyTo

property
string

An email address that will appear on the Reply-To: field

SetOptionalAddressFieldsFn

A function used to set the OptionalAddressFields.

Signature
type SetOptionalAddressFieldsFn<Event> = (
event: Event,
) => OptionalAddressFields | Promise<OptionalAddressFields>