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

ການສົ່ງອີເມວແມ່ນຫນ້າທີ່ສໍາຄັນໃນຫຼາຍໆແອັບພລິເຄຊັນ, ບໍ່ວ່າຈະເປັນການແຈ້ງເຕືອນຜູ້ໃຊ້, ການປັບປຸງການເຮັດທຸລະກໍາ, ຫຼືຈຸດປະສົງທາງກາລະຕະຫຼາດ.


ຢ່າງໃດກໍຕາມ, ການປະຕິບັດການແກ້ໄຂອີເມລ໌ບາງຄັ້ງອາດຈະສັບສົນ, ຍ້ອນວ່າທ່ານຕ້ອງປະສົມປະສານ mailer ກັບພາສາແມ່ແບບ, ກວດເບິ່ງການຂຶ້ນກັບ ...


ແຕ່!


ດ້ວຍແພັກເກັດ @nestixis/nestjs-mailer , ທ່ານສາມາດເຮັດໃຫ້ຂະບວນການນີ້ງ່າຍຂຶ້ນໃນຂະນະທີ່ຮັບປະກັນຄວາມຍືດຫຍຸ່ນແລະຄວາມຫນ້າເຊື່ອຖື.


ຊຸດນີ້ໃຊ້ພະລັງງານຂອງ React ແລະ Nodemailer, ເຮັດໃຫ້ມັນເປັນເຄື່ອງມືທີ່ທັນສະໄຫມແລະເປັນມິດກັບນັກພັດທະນາສໍາລັບການກໍ່ສ້າງແບບເຄື່ອນໄຫວອີເມລ໌ແລະສົ່ງອີເມວຢ່າງງ່າຍດາຍ.


ມາເບິ່ງວິທີທີ່ເຈົ້າສາມາດຕັ້ງ ແລະໃຊ້ມັນໄດ້ :)

ການຕິດຕັ້ງຊຸດ

ເພື່ອເລີ່ມຕົ້ນ, ທ່ານຈໍາເປັນຕ້ອງຕິດຕັ້ງແພັກເກັດ nestjs-mailer ໃນແອັບພລິເຄຊັນ NestJS ຂອງທ່ານ. ຊຸດນີ້ສາມາດໃຊ້ໄດ້ຜ່ານ npm, ເຮັດໃຫ້ການຕິດຕັ້ງໄວແລະກົງໄປກົງມາ. ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້ຢູ່ໃນ terminal ຂອງທ່ານ:

 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, ແລະ package @react-email/components , ອະນຸຍາດໃຫ້ທ່ານອອກແບບແມ່ແບບອີເມວດັ່ງກ່າວ.


** ແຕ່ກ່ອນນັ້ນ, ທ່ານຄວນໂທຫາໄຟລ໌ invite-admin-with-account-template.tsx ແລະຕັ້ງ.
**

"jsx": "react"

ໃນ tsconfig.json ຂອງທ່ານ


ນີ້ແມ່ນຕົວຢ່າງຂອງແມ່ແບບສໍາລັບການເຊື້ອເຊີນຜູ້ໃຊ້ admin ໃຫມ່:

 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 mailer repository GitHub .