##やりたいこと
Laravelでメール送信する際のSMTPにgamilを利用したい。
##やり方
###アプリ固有のパスワードを取得
最近のGmailは、アプリ等でSMTPを利用する際は、「アプリ固有のパスワード」を取得する必要がある。
パスワードはGoogleで発行されるものなので、忘れたら一度消して再発行すればよい。
###.envの設定
設定自体は.envに記述する。
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxx@gmail.com
MAIL_PASSWORD=xxxxxxxxxxxxxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=from@emai.com
MAIL_FROM_NAME=Hoge Foo
###config/mail.php
設定の本体はconfi/mail.phpとなる。
必要な要素をきちんと記述する。
MAIL_FROM_ADDREDSSがnullになっているが、設定しないといけないようなので、env('MAIL_FROM_ADDRESS', null)が代入されるようにする。NAMEは必須ではないよう。
mail.php
<?php
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
//ここの設定を追加
'address' => env('MAIL_FROM_ADDRESS', null),
'name' => env('MAIL_FROM_NAME', null)
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
];
###送信テスト
thinkerで送信テストができる。
php artisan tinker
>>> Mail::raw('test mail',function($message) {$message->to('to@mai.com')->subject('test');});
=> 1
=>1が返ってくればOK。
.envをいじったら一度tinkerコンソールを抜けないと反映されない。