MailHogを使ってLaravelの開発ローカル環境用のメールサーバを立ち上げる

ローカル開発中のLaravelから、メールが突然送れなくなりました。

warning: TLS library problem: error:14094415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:s3_pkt.c:1493:SSL alert number 45:

メールサーバのログを見てみるとlocalhostから送信で、メールサーバのセキュリティに引っかかっている様子。

テストメールを調子にのって送りまくっていたからか(汗)、前にも同じ現象があったのですが、その際は気がつけば解消されてました。今回はどうするか、サーバ側の調整で乗り越えてもいいのですが……

本質的には、ローカル内に開発用のメールサーバをたてるべきですよね(笑)

MailHogだとテストツールなので、実際はメールは送られずにWEBから確認するだけで安全ですし、面倒くさい云々は抜きに立てていきます。

インストール

macなので、HomeBrewを使ってインストールできます。

brew install mailhog

mailhogの起動+常時起動の設定を行っておきます。

brew services start mailhog

これで以下からアクセスが可能です。

http://localhost:8025

Laravelの設定

.envのメール設定を

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_ENCRYPTION=null

こんな感じにするだけ。

MAIL_USERNAMEやら、MAIL_PASSWORDなどは無くても問題なしです。

ポート1025がstmpでのメール受信、8025が管理画面へのアクセスになってるんですね。

送信されたメール

こんな感じで確認できます。

簡単ですね〜。

Laravel8だとsailで開発環境を整えてあげれば、Docker環境にMailHogも組み込まれるので一発で解決なんですけどね^^ LTSの9が待ち遠しい。