paint-brush
Šis „NestJS“ paketas paverčia el. pašto sąranką iš „Košmaro“ į „No-Brainer“.pateikė@axotion
233 skaitymai

Šis „NestJS“ paketas paverčia el. pašto sąranką iš „Košmaro“ į „No-Brainer“.

pateikė Kamil Fronczak5m2025/01/21
Read on Terminal Reader

Per ilgai; Skaityti

„Nestjs-mailer“ paketas yra modernus įrankis, leidžiantis kurti dinaminius el. pašto šablonus ir be vargo siųsti el. laiškus. Tai išnaudoja „React“ ir „Nodemailer“ galias, todėl tai yra kūrėjams patogus įrankis.
featured image - Šis „NestJS“ paketas paverčia el. pašto sąranką iš „Košmaro“ į „No-Brainer“.
Kamil Fronczak HackerNoon profile picture

El. laiškų siuntimas yra svarbi daugelio programų funkcija, nesvarbu, ar tai naudotojų pranešimai, operacijų atnaujinimai ar rinkodaros tikslai.


Tačiau el. pašto sprendimų įgyvendinimas kartais gali būti sudėtingas, nes turite integruoti laiškus su šablonų kalba, patikrinti, ar nėra priklausomybių...


Bet!


Naudodami paketą @nestixis/nestjs-mailer galite supaprastinti šį procesą, kartu užtikrindami lankstumą ir patikimumą.


Šis paketas išnaudoja „React“ ir „Nodemailer“ galias, todėl tai yra modernus ir kūrėjams patogus įrankis, leidžiantis kurti dinaminius el. pašto šablonus ir be vargo siųsti el.


Pasinerkime į tai, kaip galite jį nustatyti ir naudoti :)

Paketo įdiegimas

Norėdami pradėti, savo NestJS programoje turite įdiegti paketą nestjs-mailer . Šis paketas pasiekiamas per npm, todėl diegimas yra greitas ir paprastas. Savo terminale paleiskite šią komandą:

 npm install @nestixis/nestjs-mailer

Modulio konfigūravimas

Kai paketas bus įdiegtas, kitas žingsnis yra sukonfigūruoti MailerSdkModule programoje.


Konfigūravimas yra paprastas, o bandymo tikslais galite naudoti įrankį, pvz Mailcatch fiksuoti ir peržiūrėti el. laiškus nesiunčiant jų tikriems vartotojams.


Štai pavyzdys, kaip jį nustatyti:

 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 {}

El. pašto šablono kūrimas

Norėdami, kad jūsų el. laiškai būtų vizualiai patrauklūs ir dinamiškesni, galite derinti šablonus su React, o paketas @react-email/components leidžia kurti tokius el. pašto šablonus.


**Tačiau prieš tai turėtumėte iškviesti failą Kutsu-admin-with-account-template.tsx ir nustatyti
**

"jsx": "react"

savo tsconfig.json


Štai šablono, skirto pakviesti naują administratorių, pavyzdys:

 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> ); }

El. pašto siuntėjo įvedimas

Sukūrę el. pašto šabloną, kitas žingsnis yra išsiųsti el. laišką. Norėdami tai padaryti, įveskite el. pašto siuntėją į savo paslaugą.

 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, ); } }

Atlikta!

Vaizdo aprašymas

tai viskas! Sėkmingai integravote nestjs-mailer į savo programą.


Norėdami gauti daugiau informacijos ir išplėstinių funkcijų, žr „NestJS“ laiškų siuntėjo „GitHub“ saugykla .

L O A D I N G
. . . comments & more!

About Author

Kamil Fronczak HackerNoon profile picture
Kamil Fronczak@axotion
I’m a 2X-year-old tech dude from Poland, and this is my blog about tech stuff: NestJS, Node

PABAIGTI ŽYMES

ŠIS STRAIPSNIS BUVO PRISTATYMAS...