paint-brush
Цей пакет NestJS перетворює налаштування електронної пошти з кошмару на безпроблемнеза@axotion
233 показання

Цей пакет NestJS перетворює налаштування електронної пошти з кошмару на безпроблемне

за Kamil Fronczak5m2025/01/21
Read on Terminal Reader

Надто довго; Читати

Пакет Nestjs-mailer — це сучасний інструмент для створення динамічних шаблонів електронної пошти та легкого надсилання електронних листів. Він використовує потужність React і Nodemailer, що робить його зручним інструментом для розробників.
featured image - Цей пакет NestJS перетворює налаштування електронної пошти з кошмару на безпроблемне
Kamil Fronczak HackerNoon profile picture

Надсилання електронних листів є важливою функцією в багатьох програмах, будь то для сповіщень користувачів, оновлень транзакцій чи маркетингових цілей.


Однак впровадження рішень електронної пошти іноді може бути громіздким, оскільки вам потрібно інтегрувати поштову програму з мовою шаблонів, перевіряти залежності...


але!


За допомогою пакета @nestixis/nestjs-mailer ви можете спростити цей процес, забезпечуючи при цьому гнучкість і надійність.


Цей пакет використовує потужність React і Nodemailer, що робить його сучасним і зручним для розробників інструментом для створення динамічних шаблонів електронної пошти та легкого надсилання електронних листів.


Давайте розберемося, як його налаштувати та використовувати :)

Встановлення пакета

Щоб розпочати, вам потрібно встановити пакет nestjs-mailer у ваш додаток NestJS. Цей пакет доступний через 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 дає змогу створювати такі шаблони електронних листів.


**Але перед цим вам слід викликати файл 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 .

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

ПОВІСИТИ БИРКИ

ЦЯ СТАТТЯ БУЛА ПРЕДСТАВЛЕНА В...