Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Docker+LaravelでMailhogを使う

More than 1 year has passed since last update.

Mailhogとは

メール送信テストツール。Dockerには公式にイメージが用意されている。

Docker環境にMailhogを導入する

環境:
Docker version 18.09.2
docker-compose version 1.23.2
Laravel Framework 5.5.45

以下に環境変数を変更。

/laradock/docker-compose.yml
version: '3'

### Mailhog ################################################
    mailhog:
      build: ./mailhog
      ports:
        - "1025:1025"
        - "8025:8025"
      networks:
        - frontend
        - backend
      image: mailhog/mailhog #追加
/laravelプロジェクト/.env
MAIL_DRIVER=smtp
# MAIL_HOST=smtp.mailtrap.io
MAIL_HOST=mailhog
# MAIL_PORT=2525
MAIL_PORT=1025
# MAIL_USERNAME=null
MAIL_USERNAME=任意のユーザー名
# MAIL_PASSWORD=null
MAIL_PASSWORD=任意のパスワード
MAIL_ENCRYPTION=null

コンテナ起動

$ docker-compose up -d --build nginx mysql mailbag workspace ...

# コンテナ確認
 docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                     PORTS                                            NAMES
eddbac17aed5        mailhog/mailhog       "MailHog Mailhog"        4 seconds ago       Up 2 seconds               0.0.0.0:1025->1025/tcp, 0.0.0.0:8025->8025/tcp   laradock_mailhog_1
fea975349d03        laradock_mysql        "docker-entrypoint.s…"   3 days ago          Up About a minute          0.0.0.0:3306->3306/tcp, 33060/tcp                laradock_mysql_1
# 〜以下省略〜

ブラウザでlocalhost:8025にアクセスして確認
スクリーンショット 2019-05-17 9.47.58.png

導入完了です!

テスト送信

メールクラスとテンプレートを作成

$ php artisan make:mail TestMail --markdown=email.testmail

以下のフィアルが生成されたのを確認。
/app/Mail/TestMail.php
/resources/views/email/testmail.blade.php

ルートに追加

/routes/web.php
use Illuminate\Support\Facades\Mail;
use App\Mail\TestMail;

Route::get('/testmail', function(){
    Mail::to('test@example.com')->send(new TestMail);
    return 'メール送信完了';
});

ブラウザでlocalhost/testmailにアクセスする。
スクリーンショット 2019-05-17 10.14.25.png

Mailhogでも確認する。
スクリーンショット 2019-05-17 10.23.03.png

参考

munimuni
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away