Maison >interface Web >js tutoriel >Comment envoyer facilement des emails dans NestJS ?
L'envoi d'e-mails est une fonctionnalité essentielle dans de nombreuses applications, que ce soit pour les notifications utilisateur, les mises à jour transactionnelles ou à des fins de marketing. Cependant, la mise en œuvre de solutions de messagerie peut parfois s'avérer fastidieuse, car vous devez intégrer le mailer au langage de modèle, vérifier les dépendances...
Mais !
Avec le package @nestixis/nestjs-mailer, vous pouvez simplifier ce processus tout en garantissant flexibilité et fiabilité.
Ce package exploite la puissance de React et Nodemailer, ce qui en fait un outil moderne et convivial pour les développeurs permettant de créer des modèles d'e-mails dynamiques et d'envoyer des e-mails sans effort.
Voyons comment vous pouvez le configurer et l'utiliser :)
Pour commencer, vous devez installer le package nestjs-mailer dans votre application NestJS. Ce package est disponible via npm, ce qui rend l'installation rapide et simple. Exécutez la commande suivante dans votre terminal :
npm install @nestixis/nestjs-mailer
Une fois le package installé, l'étape suivante consiste à configurer le MailerSdkModule dans votre application.
La configuration est simple et, à des fins de test, vous pouvez utiliser un outil comme Mailcatch pour capturer et prévisualiser les e-mails sans les envoyer à de vrais utilisateurs. Voici un exemple de la façon de le configurer :
import { MailerSdkModule } from '@nestixis/nestjs-mailer'; import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ MailerSdkModule.register({ auth: { user: 'username', password: 'password', host: 'sandbox-smtp.mailcatch.app', port: 2525, ssl: false, }, from: 'your-email@example.com', }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
Pour rendre vos e-mails visuellement attrayants et plus dynamiques, vous pouvez combiner des modèles avec React, et package@react-email/components vous permet de concevoir de tels modèles d'e-mails.
Mais avant cela, vous devez appeler le fichier invite-admin-with-account-template.tsx et définir
"jsx": "réagir"
dans votre tsconfig.json
Voici un exemple de modèle pour inviter un nouvel utilisateur administrateur :
import { Body, Container, Head, Html, Img, Link, Section, Text, } from '@react-email/components'; import * as React from 'react'; export default function InviteAdminWithAccountTemplate({ translation, language, invitationHref, passwordHref, logoUrl, }) { return ( <Html lang={language}> <Head> <style>{/* Your custom styles here */}</style> </Head> <Body> <hr> <h2> Injecting the Email Sender </h2> <p>After creating your email template, the next step is to send the email. To do this, you inject the email sender into your service.<br> </p> <pre class="brush:php;toolbar:false">import { EmailSenderInterface, MAILER_SDK_CLIENT, } from '@nestixis/nestjs-mailer'; import { Inject, Injectable } from '@nestjs/common'; import InviteAdminWithAccountTemplate from './invite-admin-with-account-template'; @Injectable() export class AppService { constructor( @Inject(MAILER_SDK_CLIENT) private readonly emailSender: EmailSenderInterface, ) {} async send(): Promise<void> { const translations = { titleInside: { subpart1: 'Welcome', subpart2: ' to the platform!' }, contentPart1: 'Hello', contentPart2: 'Your admin account has been created.', contentPart3: { subpart1: 'Click here to activate your account: ', subpart2: 'Activate', subpart3: '.', }, contentPart4: { subpart1: 'To set your password, click here: ', subpart2: 'Set password', }, }; const emailContent = await InviteAdminWithAccountTemplate({ translation: translations, language: 'en', invitationHref: 'xxx', passwordHref: 'xxx', logoUrl: 'logo.png', }); await this.emailSender.sendEmail( 'test@test.com', 'Admin Invitation', emailContent, ); } }
C'est ça ! Vous avez intégré avec succès nestjs-mailer dans votre application.
Pour plus de détails et de fonctionnalités avancées, consultez le référentiel GitHub du mailer NestJS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!