「MailHog」は、XAMPPのPHPなど、ローカル環境で動作しているウェブサイトやシステムから送信されるメールを捕まえて、ブラウザで確認表示できるツールです。この記事では「MailHog」のダウンロード・設定・テストの方法を解説します。
「MailHog」が対応している文字コードは「UTF-8」のみです。もし「Shift-JIS」のメールも扱う場合は、「MailHog」と同じ機能を持ち、「Shift-JIS」にも対応している「MailCatcher」の利用をオススメします。
- Windows11 Home (23H2)
- XAMPP 8.2.12
- テキストエディタ : VSCode
- インストールしたMailHog : 1.0.1
「MailHog」のダウンロード
「MailHog」のダウンロードは「GitHub」から行いますが、「GitHub」のアカウントを作成する必要はありません。
GitHubの「MailHog」のページにアクセスします。
https://github.com/mailhog/MailHog
画面右側に「Releases」という表示があります。それを見ると、現時点では、「Latest」として「Mailhog 1.0.1」と表示されていました。これが現在リリースされている最終バージョンです。その表示をクリックします。
様々なプラットフォーム用のダウンロード・リストが表示されますので、目的の「MailHog」をダウンロードします。
- Windows64ビット版を使っている場合 → MailHog_windows_amd64.exe
- Windows32ビット版を使っている場合 → MailHog_windows_386.exe
所定のフォルダに設置
「MailHog」は、ダウンロードしてきた実行ファイルを、所定のフォルダに設置するだけで使用できます。今回は「XAMPP」で使用することを前提に、解説します。
ダウンロードした「MailHog」を、「mailhog.exe」などにリネームします。このファイル名は、後ほどPHPの設定ファイルに記述するため、分かりやすいような名前が良いです。
リネームしたら、「C:/xampp/sendmail/」下にコピーします。
「MailHog」の起動・終了
「C:/xampp/sendmail/mailhog.exe」をダブルクリックして起動します。次のスクリーンショットのような画面が表示されます。
ブラウザから「http://localhost:8025」にアクセスします。次のような画面が表示されれば「MailHog」は正常に動作しています。送信されたメールは、この画面に表示されます。
「MailHog」を起動したときに開いた以下のウィンドウを閉じると、「MailHog」は終了します。
XAMPPのPHPから送信されるメールを「MailHog」で確認する
XAMPPのPHPから送信されるメールを「MailHog」の画面で表示できるようにするための設定を行い、動作確認を行います。
PHPの設定変更
XAMPPのPHPから送信されるメールを「MailHog」に対して送信するように、設定を行います。
設定するファイルは「 C:/xampp/php/php.ini 」です。これをエディタで開き、以下のように修正します。
- 「smtp_port」を「1025」に変更。
- 「sendmail_path」を設定。
設定する「sendmail_path」は、次のとおりです。
"C:/xampp/sendmail/mailhog.exe sendmail"
修正前と修正後のイメージは、次のスクリーンショットのようになります。
【”php.ini”修正前】
【”php.ini”修正後】
PHPの設定変更は以上です。
メール送信テスト
以下のような簡単なメール送信プログラムを「mailtest.php」というファイルで、ローカルのドキュメントルートに設置して、ブラウザからアクセスしてみます。
<?php
$to = 'test@localhost';
$subject = 'テストメール';
$message = 'こんにちは。これはMailHogのテストメールです。';
$headers = 'From: webmaster@localhost';
$result = mb_send_mail( $to, $subject, $message, $headers );
if ( $result ) {
echo '送信完了';
} else {
echo '送信失敗';
}
「Apache」を起動、または再起動して、ブラウザから「http://localhost/mailtest.php」にアクセスします。
「送信完了」と表示されました。
「MailHog」の画面を確認してみると、送信したテストメールが着信しています。
ダブルクリックすると、メールの本文が確認できます。
XAMPPのPHPから送信されたメールを「MailHog」を使って、ブラウザ上で確認することができました。以上で「MailHog」の解説は終了です。