paint-brush
دا د NestJS بسته د بریښنالیک تنظیم کول د شپې خوب څخه No-Brainer ته اړويلخوا@axotion
233 لوستل

دا د NestJS بسته د بریښنالیک تنظیم کول د شپې خوب څخه No-Brainer ته اړوي

لخوا Kamil Fronczak5m2025/01/21
Read on Terminal Reader

ډېر اوږد؛ لوستل

د Nestjs-mailer بسته د متحرک بریښنالیک ټیمپلیټونو جوړولو او په اسانۍ سره د بریښنالیکونو لیږلو لپاره عصري وسیله ده. دا د عکس العمل او نوډمیلر ځواک ګټه پورته کوي ، دا د پراختیا کونکي دوستانه وسیله جوړوي.
featured image - دا د NestJS بسته د بریښنالیک تنظیم کول د شپې خوب څخه No-Brainer ته اړوي
Kamil Fronczak HackerNoon profile picture

د بریښنالیکونو لیږل په ډیری غوښتنلیکونو کې یو مهم فعالیت دی، که د کاروونکي خبرتیاوې، د لیږد تازه معلومات، یا د بازار موندنې موخو لپاره.


په هرصورت، د بریښنالیک حلونو پلي کول ځینې وختونه پیچلي کیدی شي، ځکه چې تاسو باید د ټیمپلیټ ژبې سره میلر مدغم کړئ، د انحصار لپاره وګورئ ...


خو!


د @nestixis/nestjs-mailer کڅوړې سره، تاسو کولی شئ دا پروسه ساده کړئ پداسې حال کې چې انعطاف او اعتبار ډاډمن کړئ.


دا کڅوړه د عکس العمل او نوډ میلر ځواک څخه ګټه پورته کوي ، دا د متحرک بریښنالیک ټیمپلیټونو رامینځته کولو او په اسانۍ سره بریښنالیکونو لیږلو لپاره عصري او پراختیا کونکي دوستانه وسیله رامینځته کوي.


راځئ چې په دې اړه غور وکړو چې تاسو څنګه کولی شئ دا تنظیم کړئ او وکاروئ :)

د بسته بندي نصب کول

د پیل کولو لپاره ، تاسو اړتیا لرئ په خپل NestJS غوښتنلیک کې د nestjs-mailer کڅوړه نصب کړئ. دا کڅوړه د npm له لارې شتون لري ، نصب کول ګړندي او مستقیم کوي. په خپل ترمینل کې لاندې کمانډ چل کړئ:

 npm install @nestixis/nestjs-mailer

د ماډل ترتیب کول

یوځل چې کڅوړه نصب شي ، بل ګام ستاسو په غوښتنلیک کې د MailerSdkModule تنظیم کول دي.


ترتیب مستقیم دی، او د ازموینې موخو لپاره، تاسو کولی شئ د وسیله په څیر وکاروئ میلکیچ د بریښنالیکونو نیول او بیاکتنه کول پرته له دې چې اصلي کاروونکو ته یې ولیږئ.


دلته د دې تنظیم کولو څرنګوالي یوه بیلګه ده:

 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-email/components ، تاسو ته اجازه درکوي چې دا ډول بریښنالیک ټیمپلیټونه ډیزاین کړئ.


**مګر له دې مخکې، تاسو باید فایل invite-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 ذخیره .