Open-Source-Projekt
maildev/maildev avatar
maildev/maildev

MailDev: SMTP-Hilfsserver mit Web-Oberfläche für E-Mail-Tests

SMTP-Server + Webschnittstelle zum Anzeigen und Testen von E-Mails während der Entwicklung.

6.055 Sterne560 ForksTypeScriptMIT

Auf einen Blick

Was ist das?
MailDev von maildev fängt SMTP-Nachrichten in der Entwicklung ab und zeigt sie in einer Web-Oberfläche. Node-basiert, per npm oder Docker nutzbar, mit persistenter Ablage, Relay-Optionen und vielen Konfigurationspfaden.
Für wen ist es gedacht?
MailDev passt für Entwickler, die generierte E-Mails ohne echtes Postfach prüfen wollen: SMTP auf Port 1025, Oberfläche auf 1080, auch per Docker-Image `maildev/maildev`. Die Optionstabelle deckt Persistenz, Limits, Relay und Zugriffsschutz ab, `--mcp` ergänzt eine Claude-Anbindung.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 4 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich TypeScript, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

MailDev: ein SMTP-Server für die Entwicklung

MailDev ist ein SMTP-Server mit Web-Oberfläche, der E-Mails in der Entwicklungsphase abfängt. Das README beschreibt den Zweck einfach: die vom Projekt generierten E-Mails testen, mit einer Oberfläche, die lokal auf Node.js läuft. Statt echte Postfächer zu belegen, landen Test-Sendungen auf Port 1025 und lassen sich im Browser ansehen. Das Projekt ist in TypeScript geschrieben und unter MIT lizenziert; am Tag der Analyse stehen 6037 Sterne, 557 Forks und 45 offene Issues im Repositorium.

Die Nische ist gut gefüllt, und MailDev gehört darin zu den etablierten Projekten. Die Kurzbeschreibung des Repositoriums nennt SMTP Server plus Web Interface for viewing and testing emails during development, was die README mit dem Satz zum Testen generierter E-Mails aufgreift.

Installation: npm oder Docker

Der Einstieg läuft über npm: `npm install -g maildev`. Alternativ existiert das Docker-Image `maildev/maildev` auf Docker Hub; ein klassischer Start ist `docker run -p 1080:1080 -p 1025:1025 maildev/maildev`. Für die Container-Nutzung liegt eine eigene Anleitung im Repositorium unter docs/docker.md.

Die beiden Ports entsprechen den Standardwerten des Tools: 1025 für den SMTP-Eingang, 1080 für die Web-Oberfläche. Wer sie ändern will, nutzt die Kommandozeilen-Optionen oder die zugehörigen Umgebungsvariablen, die das README in einer Tabelle auflistet.

Ports, Bindung und die große Optionstabelle

Die Optionstabelle ist das Kernstück der README. `-s, --smtp <port>` setzt den SMTP-Port, `-w, --web <port>` den Port der Web-GUI. Dazu kommen Bindungs-Adressen, HTTPS-Zertifikate, Zertifikats- und Schlüsseldateien sowie Zugangsdaten für eingehende und ausgehende Mails. Jede Kommandozeilen-Option besitzt nach README eine Umgebungsvariable, etwa `MAILDEV_SMTP_PORT`, `MAILDEV_WEB_PORT` oder `MAILDEV_MAIL_DIRECTORY`.

Weitere Schalter steuern Ablage und Größe: `--max-emails`, `--mail-directory` und `--max-message-size`, dessen Standard bei 52428800 Bytes liegt, sowie `--hide-extensions`. Mit `--mcp` aktiviert man laut README einen MCP-Server für die Claude-Integration, `--log-mail-contents` schreibt eingehende Mails als JSON-Darstellung mit. Die Breite an Optionen zeigt, dass die Entwicklungserfahrung durchdacht ist, während die Standardwerte schnelle Starts erlauben.

Persistenz: Mails aufbewahren oder begrenzen

Standardmäßig behält MailDev jede E-Mail: Der Wert `--max-emails 0` steht für keine Begrenzung und bewahrt damit, was frühere Laufzeiten an Verhalten hatten; im Speicher bleiben die Mails auch über Neustarts hinweg. Wer einen positiven Grenzwert setzt, etwa `--max-emails 1000`, veranlasst das Tool, bei Überschreitung die älteste E-Mail samt `.eml`-Datei und Anhängen zu verwerfen. Ein persistierter Mail-Ordner bleibt damit begrenzt.

Beim Start trimpft MailDev laut README außerdem vorhandenen Rückstand im Mail-Verzeichnis auf denselben Grenzwert. Wer Speicher gezielt klein halten will, kombiniert `--mail-directory <path>` mit einem positiven Limit, statt regelmäßig selbst aufzuräumen.

Konfigurationsdateien und ihre Rangfolge

Konfiguration lässt sich in Dateien auslagern: `maildev.config.js`, `maildev.config.ts` oder `.maildevrc.json` werden unterstützt. Die Rangfolge steht im README: Kommandozeilen-Argumente schlagen Umgebungsvariablen, diese schlagen die Konfigurationsdatei, und die Datei schlägt die Standardwerte. Für Teams, die eine gemeinsame Voreinstellung teilen wollen, ist das eine saubere Basis.

Der Parameter `--config <file>` lädt eine gesonderte Konfigurationsdatei von beliebiger Stelle. Damit lassen sich Profile für verschiedene Aufgaben anlegen, ohne die üblichen Konfigurationsnamen festzulegen.

Relay und Zugriffsschutz

Für Tests, die an echten Systemen vorbeilaufen sollen, nennt die README Relay-Optionen: `--outgoing-host` und `--outgoing-port` lenken Mail an einen SMTP-Server, `--auto-relay` schaltet den Auto-Relay-Modus ein, optional mit Zieladresse. `--auto-relay-rules <file>` filtert, welche Mails weitergeleitet werden; die Regeln liegen in einer eigenen Datei.

Zum Absichern dienen mehrere Schalter: `--web-user` und `--web-pass` schützen die Web-Oberfläche, `--incoming-user` und `--incoming-pass` den SMTP-Eingang; für TLS stehen `--https`, `--https-key`, `--https-cert` sowie die incoming-Entsprechungen bereit. Für lokale Entwicklung oft unnötig, werden sie relevant, sobald der Zugriff nicht mehr nur lokal ist.

REST-API, Node-Einbindung und MCP

MailDev lässt sich auch in die eigene Anwendung integrieren. Das README weist auf eine REST-API und auf die Verwendung in einer Node.js-Anwendung hin; die Details verortet es in den API-Dokumentationen. Wer Agenten-Workflows anbinden möchte, aktiviert mit `--mcp` den MCP-Server für Claude, dessen genauen Funktionsumfang die Projekt-Dokumentation beschreibt.

Die Integrationen sind dokumentierte Zusätze, keine Kernanforderungen. Für den einfachen Fall genügt der SMTP-Eingang auf Port 1025, für automatisierte Prüfungen kommen API und MCP ins Spiel.

Release-Lage: 3.0-RC gegenüber v2

Die Release-Lage ist beim Analyse-Zeitpunkt spannungsgeladen: maildev@3.0.0-rc.3 ist der aktuelle Release-Kandidat, und die README weist ausdrücklich darauf hin, dass der 3.0-Zweig eine komplette Neuschreibung des Projekts ist. Wer auf Probleme stößt, soll laut Hinweis auf die letzte v2-Veröffentlichung zurückwechseln. Man sollte also zwischen dem erprobten v2.2.1 und dem umgebauten 3.0-RC klar unterscheiden.

Für die Praxis gilt: MailDev erfüllt die dokumentierte Aufgabe an den Standard-Ports, Erweiterungen und Absicherung sind über die Optionstabelle belegt, die Lizenz ist MIT. Wer genauer nachvollziehen will, vergleicht die README mit der aktuellen Release-Seite und hält bei 3.0-Problemen den v2-Zweig als Ausweichroute bereit.

Redaktionelles Fazit

MailDev passt für Entwickler, die generierte E-Mails ohne echtes Postfach prüfen wollen: SMTP auf Port 1025, Oberfläche auf 1080, auch per Docker-Image `maildev/maildev`. Die Optionstabelle deckt Persistenz, Limits, Relay und Zugriffsschutz ab, `--mcp` ergänzt eine Claude-Anbindung. Vor dem Einsatz sollte man die Release-Lage prüfen: Der 3.0-Zweig ist laut README eine Neuschreibung, v2.2.1 dient als Ausweichroute. Danach `maildev --max-emails 100` in einer Testumgebung ausprobieren.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen