前回、XAMPPのローカル環境で開発したプロジェクトで会員登録のテストを行うときは「MailHog」でメールサーバーを作ってしまえばテストは容易だと紹介しました。
しかし、LaravelでもMailHogにメールが受信するように、他のサイトの方々が紹介する方法でLaravelの設定を変更してみて、「いざメール送信!」と操作してみると、「Connection could not be established with host “mailhog:1025”: stream_socket_client():…」のエラー画面が出てしまいました…。
調べていると「環境はDockerじゃないと、LaravelはMailHogを使えないよ」という解説をするページも見かけました…。
ですがこの記事を書いているとおり、そんなことはなく!
設定を変更するとLaravelで作ったプロジェクトで送信したメールもMailHogで受信できるようになりました!
今回はXAMPPの開発環境で、Laravelで作ったプロジェクトからのメールを受信できるようにする設定方法について解説していきます。
MailHogをXAMPP環境に設定する
XAMPP環境に設定する方法は以下の記事を参考にしてみてください。
今回は、XAMPP環境にすでにMailHogを設定している前提で説明していきます。
Laravelプロジェクト内の「.env」ファイルを修正する
Laravelプロジェクト内の直下に存在する「.env」ファイルを修正します。
他のサイトだと以下の通り変更するように説明があると思います。
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
Dockerとかはこれでいいんだと思います。
しかし、XAMPP環境下でのLaravelだと「Connection could not be established with host mailhog…」エラーになります。
なので、この場合は以下の箇所を修正します。
MAIL_HOST=localhost
「mailhog」だと絶対にうまく行かないので、「localhost」にします。
これで設定は完了です!
「MailHog」を試してみる
「C:\xampp\sendmail」配下に保存した、「mailhog.exe」のファイルを起動します。
ブラウザで「http://localhost:8025」にアクセスします。
Laravelプロジェクトでメールを送信します。
※後日、Laravelでメールを送信する画面の作り方の記事を作成します。
「http://localhost:8025」で開いたMailHogを確認してみると……
無事にメールが届きました!
まとめ
今回はXAMPP環境下でLaravelプロジェクトでのMailHogの設定方法を解説しました。
「環境はDockerじゃないと、LaravelはMailHogを使えないよ」と解説するページを見かけた時には絶望したものですが、XAMPP環境下でLaravelでMailHogでのメール受信を行えました!
ぜひ参考にしてみてください。