Laravel6にメール設定(Amazon SES編 その2)

以前に、Laravel6のメールにAmazon SESの設定をエントリーしたのですが、今回はその続きです。

手順は以下の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のリージョン】
:

SMTP credentialsの作成時に表示される「SMTPユーザー名」「SMTPパスワード」ではないので注意!

 

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です。

 
以上です。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-基礎知識

おすすめ記事

動画で学習するなら ドットインストール、Schoo、Udemyのどれがいい?

独学に限界を感じたら Laravelが学べる!おススメのプログラミングスクール

フリーランスを目指すなら フリーランスエージェントTOP3