이메일 전송은 사용자 알림, 거래 업데이트, 마케팅 목적 등 다양한 애플리케이션에서 중요한 기능입니다. 그러나 메일러를 템플릿 언어와 통합해야 하고 종속성을 확인해야 하기 때문에 이메일 솔루션을 구현하는 것이 때로는 번거로울 수 있습니다...
하지만!
@nesstixis/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: 'your-email@example.com', }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
이메일을 시각적으로 매력적이고 더욱 역동적으로 만들기 위해 템플릿을 React와 결합할 수 있으며 package@react-email/comComponents를 사용하면 이러한 이메일 템플릿을 디자인할 수 있습니다.
하지만 그 전에 Invitation-admin-with-account-template.tsx 파일을 호출하고 설정해야 합니다
"jsx": "반응"
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> <hr> <h2> Injecting the Email Sender </h2> <p>After creating your email template, the next step is to send the email. To do this, you inject the email sender into your service.<br> </p> <pre class="brush:php;toolbar:false">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( 'test@test.com', 'Admin Invitation', emailContent, ); } }
그렇습니다! Nestjs-mailer를 애플리케이션에 성공적으로 통합했습니다.
자세한 내용과 고급 기능을 보려면 NestJS 메일러 GitHub 저장소를 확인하세요.
위 내용은 NestJS에서 이메일을 쉽게 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!