Heim > Web-Frontend > js-Tutorial > Wie verschicke ich ganz einfach E-Mails in NestJS?

Wie verschicke ich ganz einfach E-Mails in NestJS?

Mary-Kate Olsen
Freigeben: 2025-01-06 06:31:40
Original
447 Leute haben es durchsucht

Das Senden von E-Mails ist in vielen Anwendungen eine wichtige Funktion, sei es für Benutzerbenachrichtigungen, Transaktionsaktualisierungen oder Marketingzwecke. Allerdings kann die Implementierung von E-Mail-Lösungen manchmal umständlich sein, da Sie den Mailer mit der Vorlagensprache integrieren, auf Abhängigkeiten prüfen müssen ...

Aber!

Mit dem Paket @nestixis/nestjs-mailer können Sie diesen Prozess vereinfachen und gleichzeitig Flexibilität und Zuverlässigkeit gewährleisten.

Dieses Paket nutzt die Leistungsfähigkeit von React und Nodemailer und macht es zu einem modernen und entwicklerfreundlichen Tool zum Erstellen dynamischer E-Mail-Vorlagen und zum mühelosen Versenden von E-Mails.

Sehen wir uns an, wie Sie es einrichten und verwenden können :)

Installieren des Pakets

Um zu beginnen, müssen Sie das Paket „nestjs-mailer“ in Ihrer NestJS-Anwendung installieren. Dieses Paket ist über npm verfügbar und ermöglicht eine schnelle und unkomplizierte Installation. Führen Sie den folgenden Befehl in Ihrem Terminal aus:

npm install @nestixis/nestjs-mailer
Nach dem Login kopieren

Konfigurieren des Moduls

Sobald das Paket installiert ist, besteht der nächste Schritt darin, das MailerSdkModule in Ihrer Anwendung zu konfigurieren.

Die Konfiguration ist unkompliziert und zu Testzwecken können Sie ein Tool wie Mailcatch verwenden, um E-Mails zu erfassen und in der Vorschau anzuzeigen, ohne sie an echte Benutzer zu senden. Hier ist ein Beispiel für die Einrichtung:

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 {}
Nach dem Login kopieren

Erstellen einer E-Mail-Vorlage

Um Ihre E-Mails optisch ansprechend und dynamischer zu gestalten, können Sie Vorlagen mit React kombinieren. Mit package@react-email/components können Sie solche E-Mail-Vorlagen entwerfen.

Davor solltest du aber noch die Datei „invite-admin-with-account-template.tsx“ aufrufen und einstellen

"jsx": "reagieren"

in Ihrer tsconfig.json

Hier ist ein Beispiel einer Vorlage zum Einladen eines neuen Admin-Benutzers:

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,
    );
  }
}
Nach dem Login kopieren

Erledigt!

How to easily send emails in NestJS?

Das ist es! Sie haben den nestjs-mailer erfolgreich in Ihre Anwendung integriert.

Weitere Details und erweiterte Funktionen finden Sie im GitHub-Repository des NestJS-Mailers.

Das obige ist der detaillierte Inhalt vonWie verschicke ich ganz einfach E-Mails in NestJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage