技術記事やフリーランス記事をメインに情報公開をしています。是非見ていってください。

  1. バックエンド

LaravelでMailHogを導入して快適にメール開発をしよう!【Docker】

最終更新日:2018/12/12

はじめに

本記事ではdocker-composeで動作するLaravelにMailHogを導入して快適にメール開発をする方法をご紹介します。

MailHogとは

MailHogとは開発者向けのメールテストのためのツールです。

画面のような美しいダッシュボードでメールの送受信やプレビューなどをテストすることができます。

ソースコード

LaravelにMailHogを導入したサンプルをこちらに用意いたしました!

Laravelプロジェクトのセットアップ

本記事では、こちらをベースに進めていきます。

このプロジェクトの説明は以下の記事にまとめてあります。

すでにプロジェクトがある場合はこの章は飛ばしてください!

以下の手順でサンプルプロジェクトを起動します。

git clone https://github.com/windii-legend/laravel-docker-compose-example.git
cd laravel-docker-compose-example
docker-compose up -d --build
docker-compose exec app bash ./docker/setup.sh

完了したら一度http://localost:8000 を開いてみましょう。

以下の画面が表示されれば成功です!

MailHogの導入

それでは、MailHogを導入していきましょう。MailhogはDockerHubで公式のイメージが提供されています。

docker-compose.yml を開いて以下の記述をします。

mailhog:
    image: mailhog/mailhog
    ports:
      - "1025:1025"
      - "8025:8025"

さらにappのところに以下を追記します。

depends_on:
    - mysql
    - mailhog #追加

これでdockerの設定は終わりです。

次に .envファイルを開いて以下のようにします。

MAIL_DRIVER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=user
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null

これで一度プロジェクトを立ち上げてみましょう。

docker-compose up -d --build

http://localhost:8025でMailHogの画面が立ち上がってるはずです。

メールを送信する

それでは実際にメールを送信してみましょう。

まずMailableクラスを作成します。

docker-compose exec app bash

cd my-laravel-app

php artisan make:mail Test --markdown=emails.test

次にroutes/web.php を以下のようにします。

use Illuminate\Support\Facades\Mail;
use App\Mail\Test;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/test', function () {
    Mail::to('[email protected]')->send(new Test);
    return 'メール送信しました!';
});

この状態でhttp://localhost:8000/testにアクセスしてみましょう。

メールが送られるはずなのでhttp://localhost:8025にアクセスします。

送信されたメールがみられるようになっています!

以上でMailHogの導入は終了です。とても便利なのでぜひ導入してください〜〜。

The following two tabs change content below.

riri

25歳。 Twitter:りリー@ryudoi1 フリーランスとして働きながら、WINDII(ウィンディ)ではテックメディア事業や、受託事業を行なっています! フリーランスになるまでの過程は こちら

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。