• <ul id="iwyie"><dfn id="iwyie"></dfn></ul><cite id="iwyie"><menu id="iwyie"></menu></cite>
  • <ul id="iwyie"></ul>
    \n\n\n\n\n
    \n\n

    \n \n \n Injecting the Email Sender\n<\/h2>\n\n

    After creating your email template, the next step is to send the email. To do this, you inject the email sender into your service.
    \n<\/p>\n\n

    import {\n  EmailSenderInterface,\n  MAILER_SDK_CLIENT,\n} from '@nestixis\/nestjs-mailer';\nimport { Inject, Injectable } from '@nestjs\/common';\nimport InviteAdminWithAccountTemplate from '.\/invite-admin-with-account-template';\n\n@Injectable()\nexport class AppService {\n  constructor(\n    @Inject(MAILER_SDK_CLIENT)\n    private readonly emailSender: EmailSenderInterface,\n  ) {}\n\n  async send(): Promise {\n    const translations = {\n      titleInside: { subpart1: 'Welcome', subpart2: ' to the platform!' },\n      contentPart1: 'Hello',\n      contentPart2: 'Your admin account has been created.',\n      contentPart3: {\n        subpart1: 'Click here to activate your account: ',\n        subpart2: 'Activate',\n        subpart3: '.',\n      },\n      contentPart4: {\n        subpart1: 'To set your password, click here: ',\n        subpart2: 'Set password',\n      },\n    };\n\n    const emailContent = await InviteAdminWithAccountTemplate({\n      translation: translations,\n      language: 'en',\n      invitationHref: 'xxx',\n      passwordHref: 'xxx',\n      logoUrl: 'logo.png',\n    });\n\n    await this.emailSender.sendEmail(\n      'test@test.com',\n      'Admin Invitation',\n      emailContent,\n    );\n  }\n}\n<\/pre>\n\n\n\n\n
    \n\n

    \n \n \n 終わり!\n<\/h2>\n\n

    \"How<\/p>\n\n

    それだけです!これで、nestjs-mailer がアプリケーションに正常に統(tǒng)合されました。 <\/p>\n\n

    詳細(xì)と高度な機(jī)能については、NestJS メーラーの GitHub リポジトリをご覧ください。<\/p>\n\n\n \n\n \n "}

    国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

    Jan 06, 2025 am 06:31 AM

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

    でも!

    @nestixis/nestjs-mailer パッケージを使用すると、柔軟性と信頼性を確保しながらこのプロセスを簡(jiǎn)素化できます。

    このパッケージは React と Nodemailer の機(jī)能を活用しており、動(dòng)的な電子メール テンプレートを構(gòu)築して電子メールを簡(jiǎn)単に送信できる、開(kāi)発者にとって使いやすい最新のツールとなっています。

    セットアップ方法と使用方法を詳しく見(jiàn)てみましょう :)

    パッケージのインストール

    始めるには、nestjs-mailer パッケージを NestJS アプリケーションにインストールする必要があります。このパッケージは npm 経由で入手できるため、インストールが迅速かつ簡(jiǎn)単になります。ターミナルで次のコマンドを?qū)g行します:

    npm install @nestixis/nestjs-mailer
    

    モジュールの構(gòu)成

    パッケージがインストールされたら、次のステップはアプリケーションで MailerSdkModule を構(gòu)成することです。

    設(shè)定は簡(jiǎn)単で、テスト目的であれば、Mailcatch などのツールを使用して、実際のユーザーに送信せずにメールをキャプチャしてプレビューできます。設(shè)定方法の例を次に示します:

    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 {}
    

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

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

    しかし、その前に、ファイル Invitation-admin-with-account-template.tsx を呼び出して設(shè)定する必要があります

    "jsx": "反応"

    tsconfig.json 內(nèi)

    新しい管理者ユーザーを招待するためのテンプレートの例を次に示します:

    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 がアプリケーションに正常に統(tǒng)合されました。

    詳細(xì)と高度な機(jī)能については、NestJS メーラーの GitHub リポジトリをご覧ください。

    以上がNestJS で簡(jiǎn)単にメールを送信するにはどうすればよいですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

    このウェブサイトの聲明
    この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

    ホットAIツール

    Undress AI Tool

    Undress AI Tool

    脫衣畫像を無(wú)料で

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード寫真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    寫真から衣服を削除するオンライン AI ツール。

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無(wú)料のコードエディター

    SublimeText3 中國(guó)語(yǔ)版

    SublimeText3 中國(guó)語(yǔ)版

    中國(guó)語(yǔ)版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開(kāi)発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

    JavaとJavaScriptは異なるプログラミング言語(yǔ)であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開(kāi)発に使用されますが、JavaScriptは主にWebページ開(kāi)発に使用されます。

    JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

    JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

    JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

    JavaScriptで日付と時(shí)間を処理する場(chǎng)合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼?。これらの重要なポイントを?xí)得すると、一般的な間違いを効果的に回避できます。

    なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

    PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

    JavaScript vs. Java:開(kāi)発者向けの包括的な比較 JavaScript vs. Java:開(kāi)発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

    javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

    DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

    イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

    JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

    javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

    JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? Jun 26, 2025 am 12:54 AM

    JavaScriptアプリケーションがゆっくりとロードされ、パフォーマンスが低い場(chǎng)合、問(wèn)題はペイロードが大きすぎることです。ソリューションには、次のものが含まれます。1。コード分割(コードスプリッティング)を使用し、React.lazy()またはビルドツールを介して大きなバンドルを複數(shù)の小さなファイルに分割し、最初のダウンロードを減らすために必要に応じてロードします。 2。未使用のコード(Treeshaking)を削除し、ES6モジュールメカニズムを使用して「デッドコード」をクリアして、導(dǎo)入されたライブラリがこの機(jī)能をサポートしていることを確認(rèn)します。 3.リソースファイルを圧縮してマージし、GZIP/BrotliとTerserがJSを圧縮できるようにし、ファイルを合理的にマージし、靜的リソースを最適化します。 4.頑丈な依存関係を交換し、day.jsやフェッチなどの軽量ライブラリを選択します

    See all articles