E-Mail-Versand mit TypeScript: Bibliotheken und Codebeispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

E-Mail-Versand mit TypeScript: Überblick über Bibliotheken und Tools



Das Versenden von E-Mails ist eine der Kernaufgaben von Webanwendungen. Für TypeScript (und seine Laufzeitumgebung Node.js) gibt es mehrere ausgereifte Lösungen. In diesem Artikel betrachten wir die beliebtesten Bibliotheken, ihre Konfiguration und Anwendungsbeispiele mit vollständiger Typisierung.



1. Nodemailer – universeller SMTP-Client



Nodemailer ist die beliebteste Bibliothek zum E-Mail-Versand in Node.js. Sie unterstützt SMTP, integrierte Transporte (Sendmail, SES) und ist dank eingebauter Typen vollständig mit TypeScript kompatibel.



Installation

npm install nodemailernpm install --save-dev @types/nodemailer


Beispiel für den Versand über Gmail SMTP

import nodemailer from 'nodemailer';

interface EmailOptions { to: string; subject: string; text: string; html?: string;}

async function sendEmail(options: EmailOptions): Promise<void> { const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS, }, });

await transporter.sendMail({ from: `"MyApp" <${process.env.EMAIL_USER}>`, to: options.to, subject: options.subject, text: options.text, html: options.html || options.text, });}

// VerwendungsendEmail({ to: 'user@example.com', subject: 'Hallo aus TypeScript!', text: 'Dies ist eine Test-E-Mail.',}).catch(console.error);


Arbeiten mit Anhängen

await transporter.sendMail({  to: 'user@example.com',  subject: 'Datei im Anhang',  text: 'Sehen Sie sich das beigefügte Dokument an.',  attachments: [    {      filename: 'report.pdf',      path: './files/report.pdf',    },  ],});


2. SendGrid – Cloud-basierter E-Mail-Dienst



SendGrid (jetzt Teil von Twilio) bietet eine leistungsstarke API zum Versand von Transaktions- und Marketing-E-Mails. Für TypeScript gibt es ein offizielles Paket mit vorgefertigten Typen.



Installation

npm install @sendgrid/mail


Beispiel für den Versand mit Typisierung

import sgMail from '@sendgrid/mail';

sgMail.setApiKey(process.env.SENDGRID_API_KEY!);

interface SendGridMessage { to: string; from: string; subject: string; text: string; html?: string;}

async function sendViaSendGrid(msg: SendGridMessage): Promise<void> { try { await sgMail.send({ to: msg.to, from: msg.from, subject: msg.subject, text: msg.text, html: msg.html, }); console.log('E-Mail über SendGrid gesendet'); } catch (error) { console.error('SendGrid-Fehler:', error); }}

// VerwendungsendViaSendGrid({ to: 'client@example.com', from: 'noreply@myapp.com', subject: 'Registrierungsbestätigung', text: 'Willkommen!', html: '<h1>Willkommen!</h1><p>Vielen Dank für Ihre Registrierung</p>',});


3. AWS SES – für hochlastige Systeme



AWS Simple Email Service (SES) ist eine Unternehmenslösung zum Versenden großer E-Mail-Volumina. Es wird über das SDK @aws-sdk/client-ses verwendet.



Installation

npm install @aws-sdk/client-ses


Beispiel mit TypeScript

import { SESClient, SendEmailCommand } from '@aws-sdk/client-ses';

const sesClient = new SESClient({ region: 'us-east-1', credentials: { accessKeyId: process.env.AWS_ACCESS_KEY!, secretAccessKey: process.env.AWS_SECRET_KEY!, },});

interface SESEmailParams { to: string[]; from: string; subject: string; bodyText: string; bodyHtml?: string;}

async function sendViaSES(params: SESEmailParams): Promise<void> { const command = new SendEmailCommand({ Destination: { ToAddresses: params.to, },

Empfehlungen