@adamkac/nestjs-mailjet
v2.2.9
Published
Mailjet module for NestJS Framework
Downloads
64
Readme
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 isfalse
.
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.
| Property | Type | Description |
| --- | --- | --- |
| params
| SendEmailParams
| The 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;
};
}