1. トップページ
  2. macOSにMailHogをhomebrewでインストールする

macOSにMailHogをhomebrewでインストールする

MailHogとはなにか

ローカル開発環境上でメールの送受信ができるようになります。
入力したメールアドレスに実際に送信はされず、
ローカル上でメールが受け渡しされます。

導入するメリット

クライアントにメールが送信される事故を防ぐほか、
編集の都度サーバーにアップロードする手間が省けるため、
デバッグ作業の効率化が期待できます。

似たようなソフトはあるのか

Ruby製のMailcatacherなど、似たようなソフトはいくつかあります。
WordPressのローカル開発環境が構築できる Local に同梱されており、
とても使いやすかったのでこのソフトを選びました。

作業環境

今回はmacOS Mojave 10.14.6 で動作を確認しました。
ビルトインのapacheで使用できるように設定していきますが、
MAMPやXAMPPなどでも同様の手順で設定が可能かと思われます。

MailHogをインストールする

以下のコマンドを実行してMailHogをインストールします。

$ brew install mailhog


以下のコマンドを実行して、MacOS起動時にMailHogが自動的に起動するようにします。

$ brew services start mailhog


ここまで完了したら http://localhost:8025/ をブラウザで開いてください。
Gmail風のページが表示されればインストールは完了しています。


mhsendmailをインストールする

インストールすることで、sendmailの代替として動作し、
SMTPポート1025を使用して電子メールが送信されます。
必ず必要なので一緒にインストールしてください。

GOのインストールが必要なので、以下のコマンドを実行してインストールします。

$ brew install go


続いて以下のコマンドを実行してmhsendmailをインストールします。

$ go get github.com/mailhog/mhsendmail


追記 22/08/22

Go1.16 からは以下のようなコマンドを実行してください。

$ go install github.com/mailhog/mhsendmail@latest


成功すれば、~/go/bin/mhsendmailというファイルが追加されているはずです。

php.ini を編集する

続いてphp.iniを編集します。
sendmail_pathを以下のように書き換えてください。保存場所は好きな場所で問題ありません。

sendmail_path = "/Users/{ユーザ名}/go/bin/mhsendmail"


以上でインストール作業は終了です。

テストメールを送信する

実際にメールを送信してみます。
mail.php など適当な名前をつけ、お好きな場所に設置して実行してください。

<?php
  var_dump(
    mail(
    'to@example.com',
    'TEST MAIL',
    'This is test mail',
    'From: from@example.com'
    )
  );
?>


実行後 http://localhost:8025/  を開いてみて、
メールが1件追加されていれば動作確認は終了です。

参考にさせていただいたページ