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.
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.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt