ローカル開発中の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が待ち遠しい。