> 웹 프론트엔드 > JS 튜토리얼 > NestJS에서 이메일을 쉽게 보내는 방법은 무엇입니까?

NestJS에서 이메일을 쉽게 보내는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-06 06:31:40
원래의
451명이 탐색했습니다.

이메일 전송은 사용자 알림, 거래 업데이트, 마케팅 목적 등 다양한 애플리케이션에서 중요한 기능입니다. 그러나 메일러를 템플릿 언어와 통합해야 하고 종속성을 확인해야 하기 때문에 이메일 솔루션을 구현하는 것이 때로는 번거로울 수 있습니다...

하지만!

@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,
    );
  }
}
로그인 후 복사

완료!

How to easily send emails in NestJS?

그렇습니다! Nestjs-mailer를 애플리케이션에 성공적으로 통합했습니다.

자세한 내용과 고급 기능을 보려면 NestJS 메일러 GitHub 저장소를 확인하세요.

위 내용은 NestJS에서 이메일을 쉽게 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿