メールを利用したシステムを開発する際に、メールサーバが必要になる場面が多々あります。ローカルの開発環境では、「MailHog」を導入し手軽にメール送信テストを行えるようにします。

手順

docker-composeで開発環境を管理しているので、「MailHog」用のサービスを記述してあげれば問題なく動作します。

docker-compose 追記

1
2
3
4
5
mailhog:
    image: mailhog/mailhog:latest
    ports:
        - 1025:1025
        - 8025:8025

ファイル変更後、docker-compose upを実行すると自動的にイメージがpullされコンテナが立ち上がります。

.env 編集

1
2
3
4
5
6
MAIL_DRIVER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

tickerで以下のように実行し、MailHogでメールの受信を確認できれば問題ありません。

1
Mail::raw('test mail', function($message){$message->to('test@example.com')->subject('test');});

MailHogの画面