2
4

More than 3 years have passed since last update.

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

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、シークレットアクセスキー、リージョンの設定を追記します

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に変更したキーを追記します

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