2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel 6系でAmazon SESからメールを送信するときの設定方法

2
Last updated at Posted at 2020-03-06

はじめに

Laravelにて、Amazon SES経由でメールを送信するための設定をまとめました

環境

  • PHP 7.3
  • Laravel Framework 6.13.1

前提

Amazon SESの設定、IAMの設定は完了しているものとします

設定の流れ

  1. AWS sdkをインストールします
  2. .envファイルにIMAのアクセスキーID、シークレットアクセスキー、リージョンの設定を追記します
  3. キャッシュをクリアします

設定してみた

1. AWS sdkをインストールします

$ composer require aws/aws-sdk-php

2. .envファイルにIMAのアクセスキーID、シークレットアクセスキー、リージョンの設定を追記します

.env
MAIL_DRIVER=ses
MAIL_FROM_ADDRESS=hoge@example.com

AWS_ACCESS_KEY_ID=【IAMのアクセスキーID】
AWS_SECRET_ACCESS_KEY=【IAMのシークレットアクセスキー】
AWS_DEFAULT_REGION=【Amazon SESのリージョン】

(設定不要な箇所は割愛しています)

キャッシュをクリアします

$ php artisan config:clear

補足

上記の設定でメール送信ができるようになりますが、.envの「AWS_ACCESS_KEY_ID」は他のAWSサービス(Amazon DynamoDB、Amazon SQS、S3)の設定でも使用しています。
そのため、例えばSESとS3を使用するアプリケーションの場合、キーが重複してしまいます。
Amazon SESは他のキーを使用したい場合、Amazon SESの設定がある箇所のenvのキーを変更します

config/services.php

'ses' => [
    'key' => env('AWS_SES_ACCESS_KEY_ID'),
    'secret' => env('AWS_SES_SECRET_ACCESS_KEY'),
    'region' => env('AWS_SES_DEFAULT_REGION', 'ap-southeast-2'),
],

その後、.envに変更したキーを追記します

.env
AWS_SES_ACCESS_KEY_ID=【IAMのアクセスキー】
AWS_SES_SECRET_ACCESS_KEY=【IAMのシークレットアクセスキー】
AWS_SES_DEFAULT_REGION=【Amazon SESを使うリージョン】

キャッシュをクリアを忘れずに

まとめ

キーの設定だけで、Amazon SESからメールが送信できるのは楽でいいですね!

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?