電子メールの送信は、ユーザー通知、トランザクション更新、マーケティング目的など、多くのアプリケーションで重要な機能です。ただし、メール ソリューションの実装は、メーラーとテンプレート言語を統合したり、依存関係を確認したりする必要があるため、面倒な場合があります。
でも!
@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, ); } }
それだけです!これで、nestjs-mailer がアプリケーションに正常に統合されました。
詳細と高度な機能については、NestJS メーラーの GitHub リポジトリをご覧ください。
以上がNestJS で簡単にメールを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。