| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- ---
- title: "EmailPluginOptions"
- generated: true
- ---
- <GenerationInfo sourceFile="packages/email-plugin/src/types.ts" sourceLine="77" packageName="@vendure/email-plugin" />
- Configuration for the EmailPlugin.
- ```ts title="Signature"
- interface EmailPluginOptions {
- templatePath?: string;
- templateLoader?: TemplateLoader;
- transport:
- | EmailTransportOptions
- | ((
- injector?: Injector,
- ctx?: RequestContext,
- ) => EmailTransportOptions | Promise<EmailTransportOptions>);
- handlers: Array<EmailEventHandler<string, any>>;
- globalTemplateVars?: { [key: string]: any } | GlobalTemplateVarsFn;
- emailSender?: EmailSender;
- emailGenerator?: EmailGenerator;
- }
- ```
- <div className="members-wrapper">
- ### templatePath
- <MemberInfo kind="property" type={`string`} />
- The path to the location of the email templates. In a default Vendure installation,
- the templates are installed to `<project root>/vendure/email/templates`.
- ### templateLoader
- <MemberInfo kind="property" type={`<a href='/reference/core-plugins/email-plugin/template-loader#templateloader'>TemplateLoader</a>`} since="2.0.0" />
- An optional TemplateLoader which can be used to load templates from a custom location or async service.
- The default uses the FileBasedTemplateLoader which loads templates from `<project root>/vendure/email/templates`
- ### transport
- <MemberInfo kind="property" type={`| <a href='/reference/core-plugins/email-plugin/transport-options#emailtransportoptions'>EmailTransportOptions</a> | (( injector?: <a href='/reference/typescript-api/common/injector#injector'>Injector</a>, ctx?: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, ) => <a href='/reference/core-plugins/email-plugin/transport-options#emailtransportoptions'>EmailTransportOptions</a> | Promise<<a href='/reference/core-plugins/email-plugin/transport-options#emailtransportoptions'>EmailTransportOptions</a>>)`} />
- Configures how the emails are sent.
- ### handlers
- <MemberInfo kind="property" type={`Array<<a href='/reference/core-plugins/email-plugin/email-event-handler#emaileventhandler'>EmailEventHandler</a><string, any>>`} />
- An array of [EmailEventHandler](/reference/core-plugins/email-plugin/email-event-handler#emaileventhandler)s which define which Vendure events will trigger
- emails, and how those emails are generated.
- ### globalTemplateVars
- <MemberInfo kind="property" type={`{ [key: string]: any } | <a href='/reference/core-plugins/email-plugin/email-plugin-options#globaltemplatevarsfn'>GlobalTemplateVarsFn</a>`} />
- An object containing variables which are made available to all templates. For example,
- the storefront URL could be defined here and then used in the "email address verification"
- email. Use the GlobalTemplateVarsFn if you need to retrieve variables from Vendure or
- plugin services.
- ### emailSender
- <MemberInfo kind="property" type={`<a href='/reference/core-plugins/email-plugin/email-sender#emailsender'>EmailSender</a>`} default={`<a href='/reference/core-plugins/email-plugin/email-sender#nodemaileremailsender'>NodemailerEmailSender</a>`} />
- An optional allowed EmailSender, used to allow custom implementations of the send functionality
- while still utilizing the existing emailPlugin functionality.
- ### emailGenerator
- <MemberInfo kind="property" type={`<a href='/reference/core-plugins/email-plugin/email-generator#emailgenerator'>EmailGenerator</a>`} default={`<a href='/reference/core-plugins/email-plugin/email-generator#handlebarsmjmlgenerator'>HandlebarsMjmlGenerator</a>`} />
- An optional allowed EmailGenerator, used to allow custom email generation functionality to
- better match with custom email sending functionality.
- </div>
- <GenerationInfo sourceFile="packages/email-plugin/src/types.ts" sourceLine="64" packageName="@vendure/email-plugin" since="2.3.0" />
- Allows you to dynamically load the "globalTemplateVars" key async and access Vendure services
- to create the object. This is not a requirement. You can also specify a simple static object if your
- projects doesn't need to access async or dynamic values.
- *Example*
- ```ts
- EmailPlugin.init({
- globalTemplateVars: async (ctx, injector) => {
- const myAsyncService = injector.get(MyAsyncService);
- const asyncValue = await myAsyncService.get(ctx);
- const channel = ctx.channel;
- const { primaryColor } = channel.customFields.theme;
- const theme = {
- primaryColor,
- asyncValue,
- };
- return theme;
- }
- [...]
- })
- ```
- ```ts title="Signature"
- type GlobalTemplateVarsFn = (
- ctx: RequestContext,
- injector: Injector,
- ) => Promise<{ [key: string]: any }>
- ```
- <GenerationInfo sourceFile="packages/email-plugin/src/types.ts" sourceLine="150" packageName="@vendure/email-plugin" />
- Configuration for running the EmailPlugin in development mode.
- ```ts title="Signature"
- interface EmailPluginDevModeOptions extends Omit<EmailPluginOptions, 'transport'> {
- devMode: true;
- outputPath: string;
- route: string;
- }
- ```
- * Extends: `Omit<`[`EmailPluginOptions`](/reference/core-plugins/email-plugin/email-plugin-options#emailpluginoptions)`, 'transport'>`
- <div className="members-wrapper">
- ### devMode
- <MemberInfo kind="property" type={`true`} />
- ### outputPath
- <MemberInfo kind="property" type={`string`} />
- The path to which html email files will be saved rather than being sent.
- ### route
- <MemberInfo kind="property" type={`string`} />
- The route to the dev mailbox server.
- </div>
|