[アップデート] Amazon SES の Mail Manager ルールセットで MIME ヘッダーを条件とするルールが設定可能になりました

[アップデート] Amazon SES の Mail Manager ルールセットで MIME ヘッダーを条件とするルールが設定可能になりました

Clock Icon2024.09.22

いわさです。

先日 AWS CLI のバージョン更新履歴を眺めていたところ、v1.34.22 で Mail Manager のルールで MIME ヘッダーを条件に追加出来るようになった雰囲気が出ていました。

https://github.com/aws/aws-cli/commit/f1b892490eec2e674dd35098fe09f65e8f2f6bc8#diff-48329064955f575f203245a76b42ec76fedc5d566cfa5ba8137887596b0b11a3R21

Mail Manager というのは Amazon SES の機能で、メール受信用のマネージドなエンドポイントを作成して受信したメールのルールに基づいてワークフローなど様々なアクションを実施出来るメール受信ゲートウェイとして動作させる機能です。

https://dev.classmethod.jp/articles/ses-mail-manager/

確認してみたところ、マネジメントコンソール上でも追加の条件が使えるようになっていたので、早速検証してみました。

ルールを設定時に「MIME ヘッダー」プロパティを指定可能に

Mail Manager にはいくつかコンポーネントが登場するのですが、その中のひとつにルールセットというものがあります。
このルールセット内に任意の複数のルールを構成することで受信メールを条件判定して何かしらのアクションをトリガーすることが出来ます。

3FC2CA17-A574-4487-8D17-7B338CBF443F.png

ルールセットにルールを追加してみると、今回のアップデートで追加された「MIME ヘッダー」プロパティが選択出来るようになっていました。これか!

18315A0B-ACCE-4DC9-82FC-4162C373EDB1.png

MIME ヘッダーのキーと値を指定し、他と同様に演算子を組み合わせて評価します。

30717BE9-0E92-41B2-BFC3-D5E808381894.png

注意点として、次のように入力可能な形式が決まっているようでした。
X-始まりで、最大 258 文字です。...258 文字!?

50642EAA-3688-4F5E-9D34-76DE4675210F_4_5005_c.jpeg

実験:ルールも設定してメール受信してみた

早速こんな感じで設定してみました。
特定のカスタムヘッダーに特定の値が設定されている時に、別のカスタムヘッダーを追加した上で S3 バケットに RAW データを格納させてみます。

FF3D558F-D2BC-4487-8552-828E7E76A412.png

上記ルールグループの作成後、イングレスエンドポイントを作成します。
作成時にルールグループを指定します。トラフィックポリシーは今回はデフォルト構成状態のものを使います。

E648C74E-E33B-491A-82D2-F57DD206DA79.png

イングレスエンドポイント作成後に、エンドポイントに対して MX レコードを向けてやります。

9D018E88-727E-4666-888E-FBB33019BAC7.png

今回は Amazon SES のテスト送信機能を使って手軽に RAW データ送信を行ってみます。
次のようにX-HOGE-IWASAヘッダーを含めて送信しました。

7F37570C-7C41-436B-A0A6-1DFE60E304BF.png

S3 バケットをのぞいてみると新しいオブジェクトが作成されているようです。良さげ。

2EDFC65A-68C6-4561-8B88-B17755774D38.png

オブジェクトをダウンロードし、エディタで確認してみます。
次のようにX-FUGA-IWASAヘッダーが追加されていることを確認しました。

C75C0A36-7FA8-4F9E-98A3-195A9262D3EE.png

MIME ヘッダーを条件とするルールに従って動作していることが確認出来ました。

さいごに

本日は Amazon SES の Mail Manager ルールセットで MIME ヘッダーを条件とするルールが設定可能になったので使ってみました。

私が受信メールゲートウェイの運用経験が乏しく、どういったユースケースでカスタムヘッダーの判定が出来る嬉しいのかすぐに思いつかないのですが、特定のアプリケーション経由の判定とか、セキュリティヘッダーなどの判定目的で使う感じなんですかね?

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.