ホームページ > ウェブフロントエンド > jsチュートリアル > NestJS で簡単にメールを送信するにはどうすればよいですか?

NestJS で簡単にメールを送信するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-06 06:31:40
オリジナル
451 人が閲覧しました

電子メールの送信は、ユーザー通知、トランザクション更新、マーケティング目的など、多くのアプリケーションで重要な機能です。ただし、メール ソリューションの実装は、メーラーとテンプレート言語を統合したり、依存関係を確認したりする必要があるため、面倒な場合があります。

でも!

@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: 'your-email@example.com',
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}
ログイン後にコピー

電子メールテンプレートの作成

電子メールを視覚的に魅力的でより動的にするために、React とテンプレートを組み合わせることができます。package@react-email/components を使用すると、そのような電子メール テンプレートをデザインできます。

しかし、その前に、ファイル 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート