実際のアプリケーションではSMTPにAWS SESを使いますが、ここでは便宜上、mailgunを使って、仕組みを理解します。
### mailgun
https://www.mailgun.com/
sign inして、認証します。
Laravelからメールを送信する際には、.envファイルから設定します。
デフォルト
MAIL_DRIVER=mailgun MAILGUN_DOMAIN=sandboxf*********************.org MAILGUN_SECRET=*******************-********-********
設定ファイル
./config/mail.php
送信元のメールアドレス、名前を設定する
'from' => ['address' => 'name@hpscript.com', 'name' => 'hpscript'],
./config/services.php
./resources/view/emails/test.blade.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title><Document></Document></title> </head> <body> </body> </html>
Routeuse Illuminate\Support\Facades\Mail;
Route::get('/', function () {
// return view('welcome');
$data = [
'title'=>"hi Hpscript",
"content"=>"This is Laravel first mailgun mail"
];
Mail::send('emails.test', $data, function($message){
$message->to('*****@gmail.com', '${name}')->subject('Hello, good day!');
});
});
mailgunを使用するにはドライバを入れる
公式ドキュメント参照:https://readouble.com/laravel/*/ja/mail.html
$ php composer.phar require guzzlehttp/guzzle
./vendor/guzzle/src/Client.php
private function configureDefaults(array $config)
{
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => false,
'cookies' => false
];
// ...
}