Laravelからのメール送信

実際のアプリケーションでは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
        ];
        // ...
      }