2020/08/12
以前に、Laravel6のメールにAmazon SESの設定をエントリーしたのですが、今回はその続きです。
Laravel6にメール設定(Amazon SES編 その1)
手順は以下の2つに分かれます。
- Amazon SESの設定(メールアドレス登録、SMTP credentials の設定)
- Laravel側の設定(AWS sdkのインストール、.envの設定)
前回はAmazon SESの設定をメインに行いました。
今回はLaravel側の設定を行い、最後に動作確認を行います。
手順
1.AWS sdkをインストール
composer を使って 『AWS sdk』
をインストールします。
$ composer require aws/aws-sdk-php
実行例
composerについてわからない方は以下をご参考ください。
2.envファイルの設定
Laravel側の .envファイル
に
・IMAのアクセスキーID
・シークレットアクセスキー
・リージョン
の設定を追記します。
:
MAIL_DRIVER=ses
MAIL_FROM_ADDRESS=【Amazon SESで登録したメールアドレス】
AWS_ACCESS_KEY_ID=【IAMのアクセスキーID】
AWS_SECRET_ACCESS_KEY=【IAMのシークレットアクセスキー】
AWS_DEFAULT_REGION=【Amazon SESのリージョン】
:
3.services.phpの設定
config/services.php
を以下のように編集します。
:
'ses' => [
'key' => env('SES_KEY'),
'secret' => env('SES_SECRET'),
'region' => env('SES_REGION', 'us-east-1'),
],
4.キャッシュの作成
Laravelの環境ファイル(.env)を変更したのですが、このままだとbootstrap/cache/config.php
が優先されるので反映されません。
artisanコマンドでキャッシュをクリアにして再度作成します。
(※php artisan config:cache
だけでもOK)
$ php artisan cache:clear
$ php artisan config:cache
rm -f bootstrap/cache/config.php
コマンドを実行。
5.動作確認
Laravelのartisanコマンドのtinkerコマンドでメールテスト送信します。
# tinker起動
$ php artisan tinker
# 構文
>>>Mail::raw('メール本文', function($message) { $message->to('送信先メールアドレス')->subject('メールタイトル'); });
# 実例
>>>Mail::raw('テストです', function($message) { $message->to('mail@example.com')->subject('テスト送信'); });
実行例
以下のようにメーラーでテストメールを受け取れたらOKです。
以上です。
PHPフレームワーク Laravel入門 第2版
僕がはじめてLaravelを学習するために参考にしたサイトは、掌田津耶乃(しょうだつやの)さんの libro というサイトです。当時(2016年)、Laravel学習サイトの中でもこのサイトは群を抜いてわかりやすく説明されていたので、とても勉強になったのを覚えています。この本は掌田津耶乃さんが書いた本なので、わかりやすく解説されているだろうと kindle で購入しました。2020年8月の時点でいうと日本国内にて唯一の Laravel の良書と言っても良いかと思います。口コミでもLaravel本のロングセラー定番解説書として認知されています。当サイトではチュートリアル形式でLaravelを解説しているので、初心者の方はこの本とセットで学習されるといいと思います。しかし、かなりわかりやすく解説されているとはいえ、PHP中級者以上のスキルは必要です。PHP自体の知識が乏しい方は 独習PHP 第3版 をあわせて購入することをお勧めします。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。