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
stringrecipient
stringsubject
stringbody
stringattachments
Array<Type extends 'serialized' ? SerializedAttachment : Attachment>cc
stringbcc
stringreplyTo
stringLoadDataFn
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
stringThe type corresponds to the string passed to the EmailEventListener constructor.
templateName
stringThe template name is specified by the EmailEventHander's call to
the addTemplate() method, and will default to body.hbs
templateVars
anyThe 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
stringComma separated list of recipients email addresses that will appear on the Cc: field
bcc
stringComma separated list of recipients email addresses that will appear on the Bcc: field
replyTo
stringAn 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>