2.2.9 • Published 10 months ago

@adamkac/nestjs-mailjet v2.2.9

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Mailjet Module

The nestjs-mailjet module provides a simple wrapper for the Mailjet API, allowing NestJS applications to easily send transactional emails using the Mailjet email delivery service.

Installation

You can install the nestjs-mailjet module using npm:

npm install --save @adamkac/nestjs-mailjet

Getting Started

To use the nestjs-mailjet module, you first need to import it into your NestJS application. You can do this by adding the MailjetModule to your app's imports array:

import { MailjetModule } from '@adamkac/nestjs-mailjet';

@Module({
  imports: [
    MailjetModule.forRoot({
      apiKey: 'your_api_key',
      apiSecret: 'your_api_secret',
    }),
  ],
})
export class AppModule {}

The forRoot method takes an options object with the following properties:

  • apiKey: The Mailjet API key.
  • apiSecret: The Mailjet API secret.
  • sandboxMode (optional): A boolean value indicating whether to enable sandbox mode. Default is false.

This module options extends the mailjet ClientParams options. You can find more here.

Injecting the MailjetService

Once the MailjetModule is imported, you can inject the MailjetService into your controllers or services:

import { Injectable } from '@nestjs/common';
import { MailjetService } from '@adamkac/nestjs-mailjet';

@Injectable()
export class EmailsService {
  constructor(private readonly mailjetService: MailjetService) {}

  async sendEmail(data: any) {
    const { from, to, subject, html, text } = data;

    await this.mailjetService.send({
      from,
      to,
      subject,
      html,
      text,
    });
  }
}
import { Injectable } from '@nestjs/common';
import { MailjetService } from '@adamkac/nestjs-mailjet';

@Injectable()
export class EmailsService {
  constructor(@Inject('MAILER_CLIENT') private readonly mailjetService: MailjetService) {}

  async sendEmail(data: any) {
    const { from, to, subject, html, text } = data;

    await this.mailjetService.send({
      from,
      to,
      subject,
      html,
      text,
    });
  }
}

Using Templates

You can also use email templates with the MailjetService by passing a templateId and context:

await this.mailjetService.send({
  from,
  to,
  subject,
  context: {
    templateId: 12345,
    name: 'John Doe',
    orderNumber: 12345,
  },
});

API

The MailjetService provides a single method for sending email:

send

send(params: SendEmailParams): Promise<any>

Sends an email using the Mailjet API.

PropertyTypeDescription
paramsSendEmailParamsThe email parameters.

The SendEmailParams interface has the following properties:

interface SendEmailParams {
  from: string;
  to: string | string[];
  subject?: string;
  html?: string;
  text?: string;
  context?: Record<string, any> & {
    templateId?: number;
  };
}
2.2.9

10 months ago

2.2.7

10 months ago

2.2.6

10 months ago

2.2.5

10 months ago