3.0.0 • Published 9 months ago

@trxn/nestjs-mailjet v3.0.0

Weekly downloads
-
License
-
Repository
github
Last release
9 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 @trxn/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 '@trxn/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 '@trxn/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,
    });
  }
}

The MailjetModule expose the same service with an alias token: 'MAILER_CLIENT' from the @trxn/nestjs-mailer package. So you can import this service like this too:

import { Injectable } from '@nestjs/common';
import { MAILER_CLIENT } from '@trxn/nestjs-mailer';
import { MailjetService } from '@trxn/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;
  };
}

Conclusion

The nestjs-mailjet module provides a simple and convenient way to send transactional emails via the Mailjet API in a NestJS application. By using this module, you can easily integrate email sending functionality into your app and focus on building other important features.

2.2.7

10 months ago

3.0.0

9 months ago

2.2.5

11 months ago

2.2.1

11 months ago

2.2.0

11 months ago

2.2.3

11 months ago

2.2.2

11 months ago

2.2.4

11 months ago

2.1.22-next.5

11 months ago

2.1.22-next.3

11 months ago

2.1.22-next.4

11 months ago

2.1.22-next.1

12 months ago

2.1.22-next.2

11 months ago

2.1.22-next.0

12 months ago

2.1.9

1 year ago

2.1.4

1 year ago

2.1.12

1 year ago

2.1.6

1 year ago

2.1.5

1 year ago

2.1.10

1 year ago

2.1.8

1 year ago

2.1.11

1 year ago

2.1.7

1 year ago

2.1.2

1 year ago

2.1.1

1 year ago

2.1.0-next.1

1 year ago

2.1.3

1 year ago

2.1.0-next.0

1 year ago

2.1.0

1 year ago

2.0.11-next.3

1 year ago

2.0.11-next.2

1 year ago

2.0.11-next.1

1 year ago