Language日本語

Amazon SES から S3 にメール受信する方法

2025-08-09
2025-08-09
ブログ記事のOGP画像

Amazon SES はメール送信に使用されることが多いサービスですが、メール受信も簡単にできてしまいます。

設定手順#

設定の手順は実は非常に簡単で、以下の通りです。

  • 受信ドメインの Identity を作成し認証する
  • S3 バケットを作成する
  • 受信ルールを作成する
  • 受信ドメインの DNS に MX レコードを作成する

ドメイン Identity の作成#

コンソール画面から、ドメインの Identity を作成します。コンソールの指示に従えば簡単にドメインの認証を行えます。

S3 バケットの作成#

SES で受け取ったメールを保存する先の S3 バケットを作成します。バケットポリシーや IAM ポリシーに必要な権限は、s3:PutObject のみです。

受信ルールの作成#

まず最初に、受信ルールセットを作成し、受信ルールセットの中に受信ルールを作成します。これによって、複数ルールをまとめて管理することができます。

こちらも、コンソールの「Email Receiving」から作成すれば、画面の指示で簡単に作成できます。

途中で受信条件を指定することができる画面があります。こちらもコンソールに受信条件の書き方が付属していますので、そちらを参考に書くことができます。

次の画面でメール受信時のアクションを選択できます。S3 に保存、Lambda 関数を呼び出す、SNS にメッセージを発行するなどの操作が可能で、複数の操作も追加可能です。

今回は S3 バケットに保存します。必要な権限は s3:putObject です。

MX レコードを追加する#

この部分が一番重要で、コンソールの指示だけではわからない部分です。

受信するドメインの DNS レコードに以下のレコードを追加します(region は SES をセットアップしたリージョン)。

DNS
10 inbound-smtp..amazonaws.com

例えば東京リージョン (ap-northeast-1) であれば:

DNS
10 inbound-smtp.ap-northeast-1.amazonaws.com

例えば東京(ap-northeast-1) → 大阪(ap-northeast-3) というフェイルオーバーをするのであれば:

DNS
10 inbound-smtp.ap-northeast-1.amazonaws.com
20 inbound-smtp.ap-northeast-3.amazonaws.com

メール受信確認#

普段使用しているメールクライアントから、今回設定したドメインあてにメールを送信し、S3 バケットに保存されていることを確認します。

ここまでできれば後は煮るなり焼くなり自由に自動化ができますね!

Portrait of the Author
山下 生真
クラウドエンジニア。業務ではインフラ関連の仕事をしているが、プライベートでは専らシステムプログラミングに没頭している姿が目撃されている。Rust を好んで使用しているらしい。趣味でイラストを嗜む。