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