paint-brush
NestJS pakete honek posta elektronikoaren konfigurazioa Nightmare-tik No-Brainer bihurtzen duarabera@axotion
233 irakurketak

NestJS pakete honek posta elektronikoaren konfigurazioa Nightmare-tik No-Brainer bihurtzen du

arabera Kamil Fronczak5m2025/01/21
Read on Terminal Reader

Luzeegia; Irakurri

Nestjs-mailer paketea posta elektronikoko txantiloi dinamikoak eraikitzeko eta mezuak esfortzurik gabe bidaltzeko tresna modernoa da. React eta Nodemailer-en boterea aprobetxatzen du, garatzaileentzako tresna bat bihurtuz.
featured image - NestJS pakete honek posta elektronikoaren konfigurazioa Nightmare-tik No-Brainer bihurtzen du
Kamil Fronczak HackerNoon profile picture

Mezu elektronikoak bidaltzea funtzio kritikoa da aplikazio askotan, erabiltzaileen jakinarazpenetarako, transakzio-eguneratzeetarako edo marketin-helburuetarako.


Hala ere, posta elektronikoko irtenbideak ezartzea batzuetan astuna izan daiteke, mailer txantiloi-hizkuntzarekin integratu behar baita, mendekotasunak egiaztatu...


Baina!


@nestixis/nestjs-mailer paketearekin, prozesu hau erraztu dezakezu malgutasuna eta fidagarritasuna bermatuz.


Pakete honek React eta Nodemailer-en boterea aprobetxatzen du, posta elektronikoko txantiloi dinamikoak eraikitzeko eta mezu elektronikoak ahaleginik gabe bidaltzeko tresna moderno eta garatzaileentzako egokia bihurtuz.


Murgil dezagun nola konfiguratu eta erabil dezakezun :)

Paketea instalatzen

Hasteko, nestjs-mailer paketea instalatu behar duzu zure NestJS aplikazioan. Pakete hau npm bidez eskuragarri dago, instalazioa azkarra eta erraza eginez. Exekutatu komando hau zure terminalean:

 npm install @nestixis/nestjs-mailer

Modulua konfiguratzea

Paketea instalatuta dagoenean, hurrengo urratsa zure aplikazioan MailerSdkModule konfiguratzea da.


Konfigurazioa erraza da, eta probak egiteko, antzeko tresna bat erabil dezakezu Mailatch mezu elektronikoak harrapatzeko eta aurreikusteko, benetako erabiltzaileei bidali gabe.


Hona hemen konfiguratzeko adibide bat:

 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: '[email protected]', }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}

Posta elektronikoaren txantiloia sortzea

Zure mezu elektronikoak bisualki erakargarriak eta dinamikoagoak izan daitezen, React-ekin txantiloiak konbina ditzakezu, eta @react-email/components paketearekin, horrelako mezu elektronikoen txantiloiak diseinatzeko aukera ematen du.


** Baina aurretik, invite-admin-with-account-template.tsx fitxategira deitu eta ezarri
**

"jsx": "react"

zure tsconfig.json-en


Hona hemen administratzaile berri bat gonbidatzeko txantiloi baten adibidea:

 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 style={{ fontFamily: 'Arial, sans-serif' }}> <Section> <Container> {logoUrl ? ( <Img src={logoUrl} alt="Logo" /> ) : ( <Text>{translation.titleInside}</Text> )} <Text>{translation.contentPart1}</Text> <Text>{translation.contentPart2}</Text> <Text> {translation.contentPart3.subpart1} <Link href={invitationHref}> {translation.contentPart3.subpart2} </Link> {translation.contentPart3.subpart3} </Text> <Text> {translation.contentPart4.subpart1} <Link href={passwordHref}> {translation.contentPart4.subpart2} </Link> </Text> </Container> </Section> </Body> </Html> ); }

Posta elektronikoaren bidaltzailea injektatzen

Zure posta elektronikoaren txantiloia sortu ondoren, hurrengo urratsa mezu elektronikoa bidaltzea da. Horretarako, posta elektronikoaren bidaltzailea zure zerbitzuan sartzen duzu.

 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( '[email protected]', 'Admin Invitation', emailContent, ); } }

Eginda!

Irudiaren deskribapena

Hori da! nestjs-mailer ongi integratu duzu zure aplikazioan.


Xehetasun gehiago eta funtzio aurreratuak lortzeko, begiratu NestJS posta elektronikoaren GitHub biltegia .