Skip to main content

EmailSender

An EmailSender is responsible for sending the email, e.g. via an SMTP connection or using some other mail-sending API. By default, the EmailPlugin uses the NodemailerEmailSender, but it is also possible to supply a custom implementation:

Example

Ts
const sgMail = require('@sendgrid/mail');sgMail.setApiKey(process.env.SENDGRID_API_KEY);class SendgridEmailSender implements EmailSender {  async send(email: EmailDetails) {    await sgMail.send({      to: email.recipient,      from: email.from,      subject: email.subject,      html: email.body,    });  }}const config: VendureConfig = {  logger: new DefaultLogger({ level: LogLevel.Debug })  // ...  plugins: [    EmailPlugin.init({       // ... template, handler config omitted      transport: { type: 'none' },       emailSender: new SendgridEmailSender(),    }),  ],};
Signature
interface EmailSender extends InjectableStrategy {    send: (email: EmailDetails, options: EmailTransportOptions) => void | Promise<void>;}

send

property(email: EmailDetails, options: EmailTransportOptions) => void | Promise<void>

Uses the configured transport to send the generated email.

Signature
class NodemailerEmailSender implements EmailSender {    send(email: EmailDetails, options: EmailTransportOptions) => ;}

send

method(email: EmailDetails, options: EmailTransportOptions) =>
Was this chapter helpful?
Report Issue
Edited Feb 2, 2026·Edit this page