LaravelからSESを使ってみた

2025-05-06 | カテゴリー: IT技術

記事のメイン画像

SESに関する説明はこちらがざっくりしていてわかりやすかったです。

Amazon SESを使ってみた

実際のSES設定及びLaravelの設定はこちらを参考にしました。

AWS:WorkMailでメールサーバ環境構築(続編

私がSESでの送信を試したLaravel11の練習用リポジトリのPRはこちら
https://github.com/acaibawl/laravel11_lesson/pull/9

メモ

  • SESの左メニュー「設定を始める」から、メールアドレスを検証、送信ドメインを検証、テストEメールの送信、本番アクセスをリクエストの順に試す
  • AWSのサポートから、sesをどのような用途で使うのか確認したい旨のメッセージが来るので、aws上のメッセージサポート画面で返信する
    • 「主にアプリケーション開発の学習用として、アプリケーションからの通知用に使うことを想定しています。 送信数はそれほど多くならないかと思います。」という内容でひとまず解除してもらえました。
  • SESアクセスができるIAMアカウントを作成
  • composer require aws/aws-sdk-php でaws操作用のsdkをインストール
  • config/services.phpのsesのkeyを他のawsサービスと被らない様に修正
  • .envファイルに設定追加・修正
    • MAIL_FROM_ADDRESSを修正
      • 追加
        • AWS_SES_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxxxxxxxxxx
        • AWS_SES_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxx
        • AWS_SES_DEFAULT_REGION=us-west-2(オレゴン)
    • MAIL_MAILER=ses に変更
    • MAIL_FROM_ADDRESSのdomainより前の部分は、sesなら存在しない「noreply」等でもメール送信できる
  • tinkerでメール送信
    • Mail::raw('test from laravel & ses', function($message) { $message->to('宛先アドレス')->subject('test'); });

その他

以前はSESで送信したメールの到達未到達の確認やどこに送ったかを確認するにはS3を使ってログ出力する必要があったようです。

あの人へSESで送ったメールってどうなったんだろう?どうやれば確認出来るのか ~AWS100本ノック~ 10/100

ですが、今はVirtual Deliverability Managerという機能が追加されており、若干の料金はかかるけど有効にすることでメール送信のログが見れるようになりました。

[アップデート]Amazon SESのVirtual Deliverability Managerでメール個別の送信イベントが閲覧できるようになりました

© Copyright 2025 浅井 All rights reserved.