Laravelでのメール送信の方法【現役エンジニアが解説】
今回は、Laravelでのメール送信の方法について、簡単に解説していきます。
.envファイルの設定
Laravelでメール送信を行うにはまず.envの設定が必要です。
MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}"
デフォルトでは上記のような設定となっていると思われます。
このままでは送れないため、ご自身の環境に合わせて設定を変えてください。
メールのひな形の作成
次にメールのひな形ファイルを作成します。
今回はresources/views/emailsディレクトリ下にtest.blade.phpの名前で作ります。
{{ $name }}様
ユーザIDは{{ $id }}です。
Bladeのため、いつもページを作るときと同じ要領でメールの本文を作ることができます。
メールの送信
メールの送信はMailファサードのsendメソッドで行います。
sendメソッドでは、第一引数にBlade、第二引数にBladeに渡すデータ、第三引数に宛先や件名等の情報を指定します。
$data = [ "name" => "田中", "id" => "abc123" ]; Mail::send('emails.test', $data, function($message){ $message->to('hoge@example.com') ->subject('Test Mail'); });
上記のコードでは、hoge@example.com宛に「Test Mail」という件名で、$dataの情報を使ってresources/views/emails/test.blade.phpの本文のメールを送信します。