paint-brush
Бул NestJS топтому электрондук почтанын жөндөөсүн Nightmare'тен акылсызга айлантаттарабынан@axotion
233 окуулар

Бул NestJS топтому электрондук почтанын жөндөөсүн Nightmare'тен акылсызга айлантат

тарабынан Kamil Fronczak5m2025/01/21
Read on Terminal Reader

өтө узун; Окуу

Nestjs-mailer пакети электрондук почтанын динамикалык калыптарын түзүү жана электрондук каттарды оңой жөнөтүү үчүн заманбап курал. Ал React жана Nodemailerдин күчүн колдонуп, аны иштеп чыгуучуларга ыңгайлуу куралга айлантат.
featured image - Бул NestJS топтому электрондук почтанын жөндөөсүн Nightmare'тен акылсызга айлантат
Kamil Fronczak HackerNoon profile picture

Электрондук каттарды жөнөтүү колдонуучу эскертмелери, транзакциялык жаңыртуулар же маркетинг максаттары үчүн болобу, көптөгөн колдонмолордо маанилүү функция болуп саналат.


Бирок, электрондук почта чечимдерин ишке ашыруу кээде түйшүктүү болушу мүмкүн, анткени сиз почтаны шаблон тили менен бириктиришиңиз керек, көз карандылыкты текшеришиңиз керек ...


Бирок!


@nestixis/nestjs-mailer пакети менен сиз ийкемдүүлүктү жана ишенимдүүлүктү камсыз кылуу менен бул процессти жөнөкөйлөтө аласыз.


Бул пакет React жана Nodemailerдин күчүн колдонот, бул аны динамикалык электрондук почта шаблондорун түзүү жана электрондук каттарды оңой жөнөтүү үчүн заманбап жана иштеп чыгуучуларга ыңгайлуу куралга айландырат.


Келгиле, аны кантип орнотуп, колдонууга болорун карап көрөлү :)

Пакетти орнотуу

Баштоо үчүн, NestJS тиркемеңизге nestjs-mailer пакетин орнотушуңуз керек. Бул пакет npm аркылуу жеткиликтүү, бул орнотууну тез жана жөнөкөй кылат. Терминалыңызда төмөнкү буйрукту иштетиңиз:

 npm install @nestixis/nestjs-mailer

Модулду конфигурациялоо

Пакет орнотулгандан кийин, кийинки кадам колдонмоңузда MailerSdkModule конфигурациялоо болуп саналат.


Конфигурация жөнөкөй жана тестирлөө максатында сиз сыяктуу куралды колдонсоңуз болот Mailcatch чыныгы колдонуучуларга жөнөтпөстөн электрондук каттарды басып алуу жана алдын ала көрүү.


Бул жерде аны кантип орнотуунун мисалы:

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

Электрондук почта шаблонун түзүү

Электрондук каттарыңызды визуалдык жактан жагымдуу жана динамикалуураак кылуу үчүн, сиз калыптарды React менен айкалыштыра аласыз жана @react-email/components пакети ушундай электрондук почта калыптарын иштеп чыгууга мүмкүндүк берет.


**Бирок ага чейин, сиз вывить-admin-with-account-template.tsx файлын чакырып, орнотуу керек.
**

"jsx": "react"

tsconfig.json файлыңызда


Бул жерде жаңы администратор колдонуучуну чакыруу шаблонунун мисалы:

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

Электрондук почта жөнөтүүчүнү киргизүү

Сиздин электрондук почта үлгүсүн жараткандан кийин, кийинки кадам электрондук кат жөнөтүү болуп саналат. Бул үчүн, сиз электрондук почта жөнөтүүчүнү кызматыңызга киргизесиз.

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

Бүттү!

Сүрөттүн сүрөттөлүшү

Дал ушул! nestjs-mailer колдонмоңузга ийгиликтүү киргиздиңиз.


Көбүрөөк маалымат жана өркүндөтүлгөн функциялар үчүн, караңыз NestJS почтасы GitHub репозиторийси .

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

ТАГИП АЛУУ

БУЛ МАКАЛА БЕРИЛГЕН...