目的
- laravel6とメールキャッチャーの組み合わせでメールの送信を実施したところエラーが発生したため解決までの経緯をまとめる
環境
- ハードウェア環境
項目 | 情報 |
---|---|
OS | macOS Catalina(10.15.5) |
ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
プロセッサ | 2 GHz クアッドコアIntel Core i5 |
メモリ | 32 GB 3733 MHz LPDDR4 |
グラフィックス | Intel Iris Plus Graphics 1536 MB |
- ソフトウェア環境
項目 | 情報 | 備考 |
---|---|---|
PHP バージョン | 7.4.11 | Homebrewを用いてこちらの方法で導入→Mac HomebrewでPHPをインストールする |
Laravel バージョン | 6.X | commposerを用いてこちらの方法で導入→Mac Laravelの環境構築を行う |
MySQLバージョン | 8.0.21 for osx10.15 on x86_64 | Homwbrewを用いてこちらの方法で導入→Mac HomebrewでMySQLをインストールする |
情報
- 筆者はDockerなどは使用せずに直接MacにLaravelの環境構築とメールキャッチャーのサーバを立てて検証を行っていた。
- メールキャッチャーは下記の方法でサーバを立てた。
エラーまでの経緯
- laravel6のアプリでメール送信機能を作成した。
- アプリからメールを送信した。
エラーの内容
-
下記のエラーがブラウザ上に表示された。
Connection could not be established with host 127.0.0.1 :stream_socket_client(): unable to connect to 127.0.0.1:1025 (Connection refused)
-
下記画像ではsmtpのポート番号が1026になっているがこれは解決後、この記事のために意図的にエラーを発生させたため1026となってしまっている。みなさんの環境だと1025と表示されているはず。
解決までの経緯
-
下記コマンドを実行してメールキャッチャーをデフォルト設定で起動し直した。
$ mailcathcer
-
laravelのアプリ名ディレクトリで下記コマンドを実行して設定のキャッシュをリセットした。
$ php artisan config:cache
-
問題は解決した。
本件でお困りの皆さんへ
- 筆者の場合メールキャッチャーが起動していなかったことが本件の原因であった。
- このエラーの場合、メールキャッチャーとlaravelアプリの通信がうまく行ってない状態である。
- 起動しているメールキャッチャーのsmtpポート、smtpのIPが何になっているのか、また、.envファイルのMAIL_PORTとMAIL_HOSTの記載が間違えていないかを確認しよう。
- 今起動しているメールキャッチャーの情報がわからなくなってしまったなら
$ mailcatcher
というコマンドを実行することでデフォルト設定でメールキャッチャーが再度起動する。(デフォルトだとsmtpポートは1025、 smtpのIPは127.0.0.1) - .envファイルの記載が正しいようなら
$ php artisan config:cache
を実行して設定のキャッシュをクリアしてみよう。