見出し画像

Amazon Simple Email Servicesでメールを受信してS3に保存する

無料ドメイン取得した。
ドメインをRoute 53で管理するようにした。
Amazon SESでメール送信できるようにした

とくりゃ次は受信でしょ(名推理)
(本当はメール受信の検証がしたかっただけ。つまりこの記事がメイン)

公式ドキュメントはこちら

SESの左側メニューから「Rule Sets」を選択し、「Create a Receipt Rule」ボタンを押します。

コメント 2020-02-11 150706

ドメイン単位かメールアドレス単位で受信設定できるようですが、ここではドメイン単位で受信設定します。

ドメインを入力して、「Add Recipient」ボタンを押します。

コメント 2020-02-11 151424

一覧に追加されたら「Next Step」ボタンを押します。

Actions画面で受信した場合のアクションをどうするかを選択できます。
ここではS3に保存していくことにします。

コメント 2020-02-11 151641

S3選んでバケットもここで作ってみた。
この状態で「Next Step」ボタンを押します。

コメント 2020-02-11 151829

Rule Details画面ではスパムチェックやウィルスチェックの設定ができたりするみたいですが、ルール名だけ入力して他はデフォルト設定でいきます。

コメント 2020-02-11 152048

「Next Step」ボタンを押すと確認画面に行きますので、確認して「Create Rule」ボタンを押します。

設定完了です。

コメント 2020-02-11 152253

本当にSESで受信し、S3に保存されるのかを確かめるため、メールを送信してみます。
ドメイン単位で受け取るので送信先メールアドレスのユーザ名部分は任意の文字列で大丈夫です。

コメント 2020-02-11 152419

S3のバケットに怪しげな文字列のオブジェクトがあれば受信成功です!

コメント 2020-02-11 152655

ダウンロードし中身を見てもBase64エンコードされているので人間にはわかりません。

コメント 2020-02-11 152911

Base64デコードすると以下の文字列が現れます。

いぇーい、見えてるー?

見えてる。

これでメールの受信が成功しました。

受信アクションでLambdaも設定できるようですが、本文はついて来ないらしいです。なのでLambdaで受信メールを処理したい場合はS3に保存し、それをトリガーにLambdaを起動させるようです。
ついでにSNSも容量制限のためメール本文はついてきません。

自前でメールサーバ運用しなくてもメール送受信できるっていいね!


😉