MailHogをMacにインストールしてローカル開発環境が出すメールを確認できるようにする

僕はクライアント用のサイトなどを開発する際は、VCCWを使用するのですが、たまにささっと環境をつくってプラグインの動作確認をしたいとかそういうことがあって、そんなときはValetというローカル環境を使用しています。

ValetはLaravelというフレームワーク用の開発環境なんですが、WP-CLIを使用すると超簡単に環境を構築できるのでかなりおすすめです。

海外で密かに注目を浴びる Valet をつかったWordPress 開発環境が便利すぎて鼻血が出た

ローカル環境でちょっと不便なのが、WordPressが吐くメールの確認ができないことですよね。あとターミナルに入ったときに You have mail. とか出ることがあるのも地味に鬱陶しいです。

MailHogをMacにインストールする

というわけで、ローカル環境が吐くメールをプレビューするためのMailHogというものをMacにインストールしました。

VCCWにはMailCatcherというのがインストールされているので、そっちに統一したかったところですが、MailHogはHomebrewでインストールできるので、そのほうが楽そうなのでそうしました。

というわけでインストールは簡単です。

$ brew install mailhog

そのあとバックグラウンドで起動しっぱなしにしたければ以下のコマンドを実行してください。

$ brew services start mailhog

PHPの設定を変更する

ローカルのPHP(僕の場合はHomebrewでインストールしたPHP 7.1)が出力するメールをすべてこのMailHogで受信するには以下の設定を加える必要があります。

/usr/local/etc/php/7.1/conf.d/mailhog.ini:

sendmail_path = /usr/local/bin/mailhog sendmail root@localhost

設定が完了したら必要に応じてApacheなりPHP-FPMなりの再起動をお忘れなく。

以上で http://localhost:8025/ にアクセスすると以下のようにメールをプレビューできるようになりました。

MailCatcherにしろMailHogにしろどのメアドにメールを送ってもキャッチしてくれるので便利ですよね。

ちなみにMailCatherもMailHogもAPIがついているので、たとえばメールを出力する機能を作ったときとかにTravis CIにインストールして、メールの内容が期待通りかをテストしたりできます。