/de/blog/mailhog-alternative-dev-emails-ohne-docker-abfangen

MailHog-Alternative: Dev-E-Mails abfangen ohne Docker

11. Oktober 2026 · 5 Min. Lesezeit

Die Inbox des Apiboo-Mail-Catchers mit einer abgefangenen Bestellbestätigung samt Anhang

Jede App, die E-Mails verschickt, braucht in der Entwicklung einen Ort, an den diese Mails gehen: Nichts wird zugestellt, und alles lässt sich untersuchen. Jahrelang war dieser Ort MailHog: ein winziger SMTP-Server mit Web-Inbox, gestartet mit einer einzigen Binary oder einer Docker-Zeile. Er funktioniert immer noch, deshalb steht er in so vielen docker-compose-Dateien, aber sein letztes Release stammt von 2020, und das Projekt wird nicht mehr gepflegt. Wenn du 2026 ein neues Projekt aufsetzt, ist es Zeit für eine Alternative.

Dieser Beitrag vergleicht die zwei sinnvollen Optionen: Mailpit, den aktiv gepflegten Nachfolger, für den sich die meisten Teams entscheiden, und den in Apiboo eingebauten Mail-Catcher. Der braucht weder Docker noch Port-Mapping noch einen zusätzlichen Prozess, weil er in der Desktop-App steckt, die du ohnehin offen hast. Apiboo stammt von uns; die Angaben zum Mail-Catcher entsprechen dem Stand Oktober 2026 der Doku unter apiboo.com/docs/data-servers/mail-catcher.

Warum du von MailHog wegwechseln solltest

  • Keine Wartung: seit 2020 keine Releases, offene Issues ohne Antwort und Abhängigkeiten, die Jahre alt sind.
  • Eine schwache HTML-Vorschau und keine Prüfungen der E-Mail selbst, sie wird nur angezeigt.
  • Ein weiterer Container oder eine weitere Binary, die laufen muss, mit einem Port, der mit allem anderen kollidiert, was 1025 heißt.

Mailpit: der unkomplizierte Ersatz

Mailpit ist eine einzelne Go-Binary (oder ein Container), die SMTP spricht, Nachrichten in einer lokalen Datenbank speichert und in einer Weboberfläche anzeigt, dazu mit einer HTTP-API, die Test-Suites abfragen können. Es wird aktiv gepflegt und ist für die meisten MailHog-Setups ein Drop-in: gleiche Port-Konventionen, gleicher Platz in docker-compose. Wenn deine CI Assertions auf versendete Mails macht oder der Catcher für das ganze Team auf einem gemeinsamen Server laufen muss, ist Mailpit die richtige Wahl, und daran ändert auch der Rest dieses Beitrags nichts.

Ein Mail-Catcher im API-Client

Die Alternative: gar keinen separaten Dienst mehr betreiben. Apiboo hat einen Mail-Catcher eingebaut, neben dem API-Client, dem Datenbank-Manager und dem Terminal: Klicke in der Leiste auf Mail catcher, dann auf Start, und der Status wechselt zu 127.0.0.1:1025 mit grünem Punkt. Richte deine App auf Host 127.0.0.1, Port 1025, ohne TLS und mit beliebigem Benutzernamen und Passwort aus, und jede E-Mail, die sie sendet, landet in der Inbox in Apiboo. Niemandem wird etwas zugestellt. Der Catcher lauscht nur auf 127.0.0.1, andere Rechner in deinem Netzwerk können ihm also nichts schicken, und er kann mit Apiboo starten, wenn du ihn immer laufen haben willst.

Ist Port 1025 belegt, sagt dir das die Toolbar und nennt Mailpit und MailHog als die üblichen Verdächtigen. Dann beendest du das andere Programm oder wählst in den Einstellungen einen anderen Port. Eine Nachricht darf bis zu 25 MB groß sein.

Die Inbox

Die Inbox ist auf die Fragen zugeschnitten, die du beim Testen tatsächlich hast:

  • Nachrichten nach Tag gruppiert, mit Absender, Empfängern, Betreff, Anzahl der Anhänge und dem Anfang des Textes; neue Mails erscheinen sofort.
  • Vier Tabs pro Nachricht: HTML auf einer weißen Karte (Skripte laufen nicht, Links öffnen sich nicht, Remote-Bilder werden nicht geladen, die E-Mail kann also nicht nach Hause telefonieren), Text, Headers als Key-Value-Tabelle und Raw als Quelltext.
  • Suche über Betreff, Absender, Empfänger und die ersten 200 Zeichen des Textes; Filter für Unread und Attachments.
  • Anhänge mit Größenangabe, jeweils mit einem Download-Button; Download .eml speichert die komplette Nachricht.
  • Behalte die letzten 50 bis 5.000 Nachrichten (Standard 500); ältere werden automatisch gelöscht. Alles wird nur auf diesem Rechner gespeichert, nie synchronisiert, und beim Abmelden entfernt.

Der Spam-Check

Das können weder MailHog noch Mailpit: Jede abgefangene Nachricht bekommt einen Spam-Score, offline berechnet anhand von 26 Regeln. Sie decken fehlende oder fehlerhafte Header ab, eine From-Domain, die vom Absender abweicht, Massenmails ohne List-Unsubscribe, Betreffzeilen in Großbuchstaben, HTML ohne Plain-Text-Teil, Tracking-Pixel, URL-Shortener, Links, deren Text eine andere Domain anzeigt, ausführbare Anhänge und mehr. Ab einem Score von 5.0 zeigt die Liste ein rotes SPAM-Badge, bei 2.0 bis 4.9 erscheint es in Bernstein. Klicke bei einer geöffneten Nachricht auf die Spam-Pill und du bekommst pro zutreffender Regel eine Karte mit Punkten, Beleg und Verbesserungshinweis. Echte Spam-Filter gewichten diese Signale anders, sieh den Check also als Orientierung, um deine Templates zu korrigieren, bevor der Filter eines Kunden es tut.

Eine Passwort-Reset-Mail testen

Der Alltags-Ablauf bei laufendem Mail-Catcher:

  • Setze in der Entwicklungskonfiguration deiner App den SMTP-Host auf 127.0.0.1 und den Port auf 1025.
  • Schicke die Reset-Anfrage aus dem API-Client im selben Fenster: POST /auth/reset mit der Adresse des Testnutzers.
  • Wechsle zum Mail-Catcher: Die Nachricht steht ganz oben. Öffne den Tab HTML, um zu sehen, was der Nutzer sieht, und den Tab Text, um zu prüfen, dass es den Fallback gibt.
  • Öffne Headers, um zu bestätigen, dass From, Reply-To und List-Unsubscribe so sind, wie du sie wolltest, und wirf einen Blick auf den Spam-Score.
  • Kopiere den Reset-Link aus dem Tab Raw und füge ihn in eine Anfrage ein, um den Ablauf abzuschließen.

Ehrliche Grenzen

  • Er braucht die Desktop-App und fängt nur Mails auf deinem Rechner ab; ein gemeinsamer Catcher für ein ganzes Team oder einen CI-Server ist Sache von Mailpit.
  • Es gibt keine HTTP-API, über die automatisierte Tests die Inbox abfragen könnten.
  • Es ist eine Inbox, kein Relay: Nichts wird je an ein echtes Postfach weitergeleitet.

Probier es mit deiner eigenen Arbeit aus

Öffne in der Leiste Mail catcher, klicke auf Start, richte deine App auf 127.0.0.1:1025 und löse einen Passwort-Reset aus. Nachricht, Header und Spam-Score sind auf dem Bildschirm, noch bevor du das Fenster gewechselt hast.

Lade Apiboo für Windows, macOS oder Linux unter apiboo.com/download herunter. Der Einstieg ist kostenlos, ohne Karte und ohne Konto: Jedes Tool läuft auf deinem eigenen Rechner, und du meldest dich erst an, wenn du Sync oder ein Team willst.