やっほー
LaravelでMail送信のサンプルを作成してみた件

LaravelでMail送信のサンプルを作成してみた件

  • 2020年3月8日
  • 2021年3月14日
  • Laravel
  • 166view

LaravelってAPIで利用しがちなので、そうなるとメール送信機能とかも普通に作ると思うんです

なので、一個サンプルがあると、なんかいいよね。

ってことで今回は、LaravelでMail送信のサンプルを作成してみました

ソースコード

ソースコードは以下にあります。

本記事執筆後、リファクタリングをしたので内容に乖離があります。

参考までに。

Mail送信サンプル作成手順、の前に

今回は実際のメール送信まではやりません(あくまでロジックを作成するだけ)。

メールサーバもないですし、Laravelはメールドライバを「log」に設定するとメールの内容をログに出力してくれるので、ログ上で確認もできますんで。

Mail送信サンプル作成手順

早速作っていきます。

まず、メールの設定ですが、基本的には「.env」と「config/mail.php」で設定されています。

で、ソースコードを書いていく前に、.envに必要な設定を書いておきます。

.envの設定

MAIL_FROM_ADDRESS」「MAIL_FROM_NAME」の設定を追記しました。
正味、「MAIL_FROM_NAME」はいらないんですけど、一応セットみたいなもんなんで。

平文メールの作成

Laravelでは平文メールとHTMLメールの2種類を作成できますが、HTMLみたいにこだわる理由もないので今回は平文メールを作成します。

 

↑が平文メールの内容になります。
メールはbladeで作成するので、当然変数の展開も可能です。

クラスの作成

Laravelには「Mailable」クラスという、メールを扱うクラスがあります。

これもphp artisanコマンドで作成できるのでサクッと作っていきます。

 

↑で「SampleMail」というクラスを作成しました。

 

まあまあ適当ですが、build関数内を少し修正しました。

コントローラの作成

本来ならロジックなどはサービスに書きたいところですが、説明の便宜上、コントローラにロジックを記載します。

ルーティングの設定

POSTされた時にコントーローラを呼ぶように追記しました。

 

こんな感じでルーティングが追加されています。

メール送信の前に

ログに出力するように設定を変更します。

 

MAIL_DRIVER」を「log」にすることで、ログにメールの内容が出力されます。

メール送信

laravel-mail

上記のようにPOSTで送信したら、200が返ってきました。

 

ログにも正しく出力されていますね。完璧!

おすすめ書籍

僕はLaravelの勉強をするのに以下の書籍を購入しました。おすすめですよ!

まとめ

Laravelでメールの機能作るのって簡単ですね。

何よりドライバを「log」にすると、ログにメールの内容が出力されるっていうのが素敵ですね。

ではさいなら。

LaravelでMail送信のサンプルを作成してみた件
フォローしてもらえると泣いて喜びます