1.目的

Amazon SESのメール送信ログをS3に保存《いれ》る

2.利用するAWSサービス

Amazon SES Amazon Data Firehose IAM S3

3.構築

※SESは設定完了している前提

3.1.S3の作成

ログ格納先のS3バケットを作成する 特別なアクセス許可などの設定は必要なし

3.2.Amazon Data Firehose ストリームの作成

Amazon Data Firehose>Firehoseストリーム>Firehoseストリームを作成へ遷移する 画像赤枠について入力する ソース:Direct PUT 送信先:Amazon S3 Firehoseストリーム名:任意のストリーム名 送信先の設定:作成したログを格納したいS3バケット S3 バケットと S3 エラー出力プレフィックスタイムゾーン:Asia/Tokyo image.png image.png

3.3.SES設定セットで利用するIAMロールの作成

IAMロール、IAMポリシーを作成する

IAMポリシー:json

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "【上記で作成したFirehoseストリームのarn】"
        }
    ]
}

IAMロール:信頼されたエンティティ(デフォルトで存在しなかったのでカスタム)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

image.png image.png

3.4.SES設定セットの作成

Amazon SES>設定セット>セットの作成から設定セットを作成する image.png

Amazon SES>設定セット>作成した設定セット>イベント送信先からイベント送信先を追加する image.png

イベントタイプは開封数とクリック数以外チェックをつける image.png

送信先の指定は以下のように設定する 送信先タイプ:Amazon Kinesis Data Firehose 名前:任意 配信ストリーム:作成したFirehoseストリーム IAMロール:作成したIAMロール image.png image.png

3.5.デフォルト設定セットの設定

Amazon SES>設定:ID>ログを取りたいID>設定セット>デフォルト設定セットの編集からデフォルト設定セットを設定する デフォルト設定セットの割り当て:チェック デフォルト設定セット:作成した設定セット

image.png

4.動作確認

テストメールを送信してみる

テストメールが届き

S3を確認すると、送信ログが格納されている image.png

ログ内容

{"eventType":"Delivery","mail":{"timestamp":"2025","source":"【送信元メールアドレス】","sourceArn":"【SESarn】","sendingAccountId":"【AWSアカウントID】","messageId":"【メッセージID】","destination":["【送信先メールアドレス】"],"headersTruncated":false,"headers":[{"name":"From","value":"【送信元メールアドレス】"},{"name":"To","value":"【送信先メールアドレス】"},{"name":"Subject","value":"【件名】"},{"name":"MIME-Version","value":"1.0"},{"name":"Content-Type","value":"multipart/alternative;  boundary=\"----=_Part_41179\""}],"commonHeaders":{"from":["【送信元メールアドレス】"],"to":["【送信先メールアドレス】"],"messageId":"【メッセージID】","subject":"【件名】"},"tags":{"ses:source-tls-version":["TLSv1.3"],"ses:operation":["SendEmail"],"ses:configuration-set":["【設定セット名】"],"ses:outgoing-tls-version":["TLSv1.3"],"ses:source-ip":["【送信元IP】"],"ses:from-domain":["【送信元ドメイン】"],"ses:caller-identity":["【呼び出し元ID】"],"ses:outgoing-ip":["【送信IPアドレス】"]}},"delivery":{"timestamp":"2025Z","processingTimeMillis":870,"recipients":["【送信先メールアドレス】"],"smtpResponse":"250 2.6.0 <【メッセージID】@ap-northeast-1.amazonses.com> [InternalId=785, Hostname=OSOM] 14475 bytes in 0.048, 293.052 KB/sec Queued mail for delivery","remoteMtaIp":"【受信サーバーIP】","reportingMTA":"【送信サーバー名】"}}

{"eventType":"Send","mail":{"timestamp":"202Z","source":"【送信元メールアドレス】","sourceArn":"【SESarn】","sendingAccountId":"【AWSアカウントID】","messageId":"【メッセージID】","destination":["【送信先メールアドレス】"],"headersTruncated":false,"headers":[{"name":"From","value":"【送信元メールアドレス】"},{"name":"To","value":"【送信先メールアドレス】"},{"name":"Subject","value":"【件名】"},{"name":"MIME-Version","value":"1.0"},{"name":"Content-Type","value":"multipart/alternative;  boundary=\"----=_Part""}],"commonHeaders":{"from":["【送信元メールアドレス】"],"to":["【送信先メールアドレス】"],"messageId":"【メッセージID】","subject":"【件名】"},"tags":{"ses:source-tls-version":["TLSv1.3"],"ses:operation":["SendEmail"],"ses:configuration-set":["【設定セット名】"],"ses:source-ip":["【送信元IP】"],"ses:from-domain":["【送信元ドメイン】"],"ses:caller-identity":["【呼び出し元ID】"]}},"send":{}}



ログのイベントについて

sendイベント メールが送信されたことを示す 送信時刻、送信元、宛先、メッセージIDなどを含む

Deliveryイベント メールが正常に配信されたことを示す 配信時刻、処理時間、SMTPレスポンス、受信サーバーのIPアドレスなどの詳細を含む