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 :)
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
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 {}
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, ); } }
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!