はじめに
本記事では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の導入は終了です。とても便利なのでぜひ導入してください〜〜。

WINDII

最新記事 by WINDII (全て見る)
- Canvaが最高すぎる。使い方を完全ガイド【チュートリアルあり】 - 2019年5月14日
- 人気急上昇中のLaravelをはじめよう!【徹底解説】 - 2019年4月23日
- Laravelの認可を理解して実装してみよう! - 2019年3月29日
この記事へのコメントはありません。