Skip to content

MailHog, eine Mailcatcher-Alternative in Go

Wer eine PHP-Anwendung entwickelt, die Mails versendet, möchte natürlich, dass diese Mails auf dem Entwicklungsrechner oder der Vagrant-Box nicht wirklich den Empfänger erreichen. Aber dennoch sollen sie irgendwo ankommen, damit Versand und Inhalt geprüft werden können.

Symfony schlägt vor, den E-Mail-Versand in der Test- und ggf. in der Development-Umgebung ganz zu deaktivieren, oder alternativ eine spezielle E-Mail-Adresse für solche Fälle einzurichten.

Ich wollte für eine Legacy-Anwendung, die Mails mittels der PHP-Funktion mail() versendet, aber lieber einen lokalen Mailcatcher verwenden, der die Mails in der Entwicklungsumgebung abfängt.

Es gibt da was für Ruby, aber nachdem die Installation immer noch nicht abgeschlossen war, als ich mit dem Kaffee aus der Küche zurückkam, habe ich das verworfen und mich nach einer Alternative umgesehen. Und gefunden:

MailHog

MailHog ist in Go geschrieben:

Inspired by MailCatcher, easier to install.

Je nach Plattform wird das aktuellste Release heruntergeladen, wer möchte, kann es auch via Docker Hub starten. Die heruntergeladene Datei muss in der Regel noch ausführbar gemacht werden (und kann, genau wie MailCatcher, optional auch beim Hochfahren automatisch gestartet werden).

Das ist aber prinzipiell schon alles. Im Browser ist das Webinterface von MailHog unter localhost:8025 aufrufbar. Dort können eingehende Mail aufgelistet und angesehen werden. Der SMTP-Server läuft analog zu MailCatcher auf Port 1025.

Screenshot des MailHog-Webinterfaces
Das MailHog-Webinterface

mhsendmail

Als Ergänzung zu MailHog und als Ersatz für sendmail dient mhsendmail, ebenfalls ein Go-Skript, das sich per go get github.com/mailhog/mhsendmail installieren lässt (z.B. nach /usr/local/bin/mhsendmail).

Um PHP beizubringen, mhsendmail statt sendmail zu verwenden, wird eine PHP-Konfiguration erstellt:


$ echo "sendmail_path = /usr/local/bin/mhsendmail | sudo tee /etc/php5/mods-available/mailhog.ini
$ sudo php5enmod mailhog
$ sudo service apache2 restart

Weiter muss nichts getan werden. Die von PHP-Applikationen versendeten Mails schlagen nun zuverlässig in MailHog auf. Ich fand die Experience der Installation sehr angenehm, jedenfalls deutlich angenehmer als sich die Platte mit zig Ruby-Dependencies vollzuschaufeln.

Trackbacks

Netz - Rettung - Recht am : Wellenreiten 02/2016

Vorschau anzeigen
Wer als “Websurfer” metaphorisch auf den Wellen des Netzes reitet, findet dabei zwar keine paradiesischen Inseln, manchmal aber immerhin ganz interessante Lektüre. Im Februar 2016 kann ich u.a. folgende Fundstücke empfehlen und der werten Leserschaft ans

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Markdown-Formatierung erlaubt
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Formular-Optionen

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!