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: Vollständige Anleitung

TypeScript ist eine streng typisierte Obermenge von JavaScript, die in modernen Webanwendungen aktiv eingesetzt wird. Der E-Mail-Versand ist eine der wichtigsten Aufgaben für Backend, Benachrichtigungen und Marketing. In diesem Artikel werden wir mehrere Bibliotheken zum E-Mail-Versand mit TypeScript im Detail analysieren, einschließlich Konfiguration, Versand einfacher und HTML-E-Mails sowie der Arbeit mit Anhängen.



Warum TypeScript für den E-Mail-Versand?

TypeScript fügt Typisierung hinzu, was die Anzahl der Fehler in der Entwicklungsphase reduziert. Beim E-Mail-Versand ist dies besonders wichtig: Korrekte Typen für SMTP-Host, Port, Anmeldedaten und E-Mail-Optionen helfen, Laufzeitfehler zu vermeiden. Darüber hinaus unterstützt TypeScript moderne async/await-Konstrukte, was den Code sauberer und verständlicher macht.



Wichtige Bibliotheken für den E-Mail-Versand mit TypeScript

  • nodemailer — die beliebteste Bibliothek für Node.js, vollständig kompatibel mit TypeScript. Unterstützt SMTP, Sendmail, Anhänge, HTML-Vorlagen.
  • @sendgrid/mail — der offizielle SendGrid-Client für Node.js mit TypeScript-Typen. Nutzt die SendGrid-API, benötigt kein SMTP.
  • aws-sdk (SES) — Amazon Simple Email Service. Leistungsstarke Lösung für Massenmailings, Integration mit AWS.
  • emailjs — eine leichte Bibliothek mit TypeScript-Unterstützung, aber weniger beliebt.


Installation und Konfiguration von nodemailer mit TypeScript

Installieren Sie die Pakete über npm:

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

Ein grundlegendes Beispiel für den E-Mail-Versand über SMTP (Gmail, Yandex, Mail.ru usw.):

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({ host: 'smtp.gmail.com', port: 587, secure: false, // true für Port 465 auth: { user: 'your-email@gmail.com', pass: 'your-password-or-app-password', }, });

const mailOptions = { from: '"Ihr Name" <your-email@gmail.com>', to: options.to, subject: options.subject, text: options.text, html: options.html, };

const info = await transporter.sendMail(mailOptions); console.log('E-Mail gesendet:', info.messageId);}

// VerwendungsendEmail({ to: 'user@example.com', subject: 'Hallo aus TypeScript!', html: '<h1>Test</h1><p>Dies ist eine HTML-E-Mail.</p>',});

Wichtig: Für Gmail aktivieren Sie "Zugriff für weniger sichere Apps" oder verwenden Sie ein App-Passwort. Für die Produktion ist OAuth2 zu bevorzugen.



E-Mail-Versand über SendGrid mit TypeScript

SendGrid bietet eine fertige API, die kein SMTP benötigt. Installation:

npm install @sendgrid/mail

Beispiel für den Versand:

import sgMail from '@sendgrid/mail';

sgMail.setApiKey('YOUR_SENDGRID_API_KEY');

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

async function sendWithSendGrid(message: SendGridMessage): Promise<void> { try { await sgMail.send(message); console.log('E-Mail über SendGrid gesendet'); } catch (error) { console.error('Fehler beim Senden:', error); }}

sendWithSendGrid({ to: 'user@example.com', from: 'sender@yourdomain.com', subject: 'Test SendGrid + TypeScript', html: '<p>Diese Nachricht wurde über die SendGrid-API gesendet.</p>',});


E-Mail-Versand mit Anhängen in TypeScript

nodemailer unterstützt Anhänge jeden Typs. Beispiel mit einer PDF-Datei:

import nodemailer from 'nodemailer';import path from 'path';

async function sendWithAttachment()

Empfehlungen