[アップデート] Amazon SESから送信されるメールのFeedback-IDをカスタマイズできるようになりました

2024.06.12

初めに

本日Amazon SESのFeedback-IDの値がカスタマイズできるアップデートが発表されていました。

Feedback-IDヘッダはAmazon SESではバウンス・苦情などのフィードバック情報を識別するような値ですが、従来はこの値はAmazon SES側で生成されるランダムな文字列となっておりユーザ側で意味を持たせるものではありませんでした。

今回のアップデートにてメール送信の際にX-SES-MESSAGE-TAGSを通じて特定のタグを指定すると(SendEmailAPIの場合はEmailTagsの値)その値をFeedback-IDに含められるようになります。

送信元であるAmazon SES視点であればもとよりCloudWatchのメトリクスを通してX-SES-MESSAGE-TAGSに指定した任意のタグを用いてタグ毎の情報を把握することが可能でしたが、Feedback-IDの値に埋め込むことでAmazon SES側の機能に限定せずGoogleのPostMaster Tools等の外部ツール、受信側での視点としてこれらの分析をすることができるようになります。

なおこのFeedback-IDについては特定のRFCで標準化されたものではなく各社が独自に利用しているもの(のはず)なので受信サーバ側で仕様が異なったりする可能性がある点ご注意ください。

なおざっと探す限りにはなりますがこのFeedback-IDのパラメータ間をコロンで区切るような形式はEメールヘッダで苦情の処理方法を定義するRFC9477で一部として定義されているCFBL-Feedback-IDフォーマットには近いものとなりそうです。

フォーマット自体はこちらから派生している可能性がありますが、このRFC自体も現時点では実験的なもの(Experimental)となっている点はご注意ください。

やってみる

実際にメールを送信して確認してみます。

Feedback-IDの値は自由にカスタマイズできるわけではなくコロン(:)を区切り文字として任意の値を追加できるといった形になります。
現在ではses:feedback-id-ases:feedback-id-bの値を指定するとこれらに指定した最大2つまで任意の値を組み込むことができます。 ※ 本記事執筆時点では英語版のドキュメントのみに記載あり

メールはいつも通りtelnetで送信していますが、DATA以降は以下のようにして送信します。

From: postfix@example.com
To: example@gmail.com
X-SES-MESSAGE-TAGS: ses:feedback-id-a=groupA, ses:feedback-id-b=saleA
Subject: feedback-id change test

Im from ses
.

受信側(GMail側)でみると以下のようにFeedback-IDに指定した値が含まれることが確認できます。X-SES-MESSAGE-TAGSヘッダ自体はAmazon SES側で処理をさせるためのヘッダなので受信側には渡りません。

From: postfix@example.com
To: example@gmail.com
Subject: feedback change test
Message-ID: <xxxxxx@ap-northeast-1.amazonses.com>
Date: Wed, 12 Jun 2024 04:56:27 +0000
Feedback-ID: groupA:saleA:1.ap-northeast-1.lxxxxxxxxxx:AmazonSES
X-SES-Outgoing: 2024.06.12-23.251.234.11

なお値の指定がない場合のFeedback-IDは以下のように先頭がコロン2つから始まる形になりますが、以前のメールはコロンなしから始まる形になりますのでFeedback-IDの値をみて何か処理をしている処理がある場合はこの辺りの影響がないか確認しておきましょう。

# 今回(未指定)
Feedback-ID: ::1.ap-northeast-1.lxxxxxxxxxx:AmazonSES
# 以前
Feedback-ID: 1.ap-northeast-1.l/xxxxxxxxxx=:AmazonSES

GMail宛に送信しているメールの場合PostMaster Toolsでこのfeedback-IDのコロン(:)で区切った値単位でレピュテーション関連の情報が見られるらしいので設定してみましたが、流石に検証でちょっと飛ばした程度では見れなさそうですね...(もしくは反映ラグか)

終わりに

Amazon SESから送信されるメールのFeedback-IDの変更を試してみました。
単発の検証のせいで実際の活用部分までのご紹介ということができませんでしたが対応しているツールをすでにご利用の方などは少し手を入れて試してみてはいかがでしょうか。

区切り文字毎にもし分析ができるのであればメールの送信元が分散していても識別子ごとにグループ分けして集計できたりもするのでしょうか?気になるところです。