Laravelでのメール送信の方法【現役エンジニアが解説】

PROGRAM

今回は、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の本文のメールを送信します。