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-devEin 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/mailBeispiel 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() Auch in der Bibliothek
Autorisierung und Authentifizierung in C# (.NET) – vollständiger Leitfaden
Testen in TypeScript mit Jest
Erstellung von CLI-Anwendungen mit Node.js: Frameworks Commander und Yargs
Internationalisierung (i18n) in C++: Vollständiger Leitfaden mit gettext und ICU
HtmlAgilityPack für C# (.NET): Komplettguide mit Beispielen