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.
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.
type EventWithAsyncData<Event extends EventWithContext, R> = Event & { data: R }
EmailDetails
The final, generated email details to be sent.
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
string
recipient
string
subject
string
body
string
attachments
Array<Type extends 'serialized' ? SerializedAttachment : Attachment>
cc
string
bcc
string
replyTo
string
LoadDataFn
A function used to load async data for use by an EmailEventHandler.
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.
type EmailAttachment = Omit<Attachment, 'raw'> & { path?: string }
LoadTemplateInput
The object passed to the TemplateLoader loadTemplate()
method.
interface LoadTemplateInput {
type: string;
templateName: string;
templateVars: any;
}
type
string
The type corresponds to the string passed to the EmailEventListener constructor.
templateName
string
The template name is specified by the EmailEventHander's call to
the addTemplate()
method, and will default to body.hbs
templateVars
any
The variables defined by the globalTemplateVars as well as any variables defined in the
EmailEventHandler's setTemplateVars()
method.
SetTemplateVarsFn
A function used to define template variables available to email templates. See EmailEventHandler.setTemplateVars().
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.
type SetAttachmentsFn<Event> = (event: Event) => EmailAttachment[] | Promise<EmailAttachment[]>
SetSubjectFn
A function used to define the subject to be sent with the email.
type SetSubjectFn<Event> = (
event: Event,
ctx: RequestContext,
injector: Injector,
) => string | Promise<string>
OptionalAddressFields
Optional address-related fields for sending the email.
interface OptionalAddressFields {
cc?: string;
bcc?: string;
replyTo?: string;
}
cc
string
Comma separated list of recipients email addresses that will appear on the Cc: field
bcc
string
Comma separated list of recipients email addresses that will appear on the Bcc: field
replyTo
string
An email address that will appear on the Reply-To: field
SetOptionalAddressFieldsFn
A function used to set the OptionalAddressFields.
type SetOptionalAddressFieldsFn<Event> = (
event: Event,
) => OptionalAddressFields | Promise<OptionalAddressFields>
SetMetadataFn
A function used to set the EmailMetadata.
type SetMetadataFn<Event> = (event: Event) => EmailMetadata | Promise<EmailMetadata>
EmailMetadata
Metadata that can be attached to an email via the EmailEventHandler.setMetadata()
method.
type EmailMetadata = Record<string, any>