Amazon Simple Email Servicesでメールを受信してS3に保存する
無料ドメイン取得した。
ドメインをRoute 53で管理するようにした。
Amazon SESでメール送信できるようにした
とくりゃ次は受信でしょ(名推理)
(本当はメール受信の検証がしたかっただけ。つまりこの記事がメイン)
公式ドキュメントはこちら
SESの左側メニューから「Rule Sets」を選択し、「Create a Receipt Rule」ボタンを押します。
ドメイン単位かメールアドレス単位で受信設定できるようですが、ここではドメイン単位で受信設定します。
ドメインを入力して、「Add Recipient」ボタンを押します。
一覧に追加されたら「Next Step」ボタンを押します。
Actions画面で受信した場合のアクションをどうするかを選択できます。
ここではS3に保存していくことにします。
S3選んでバケットもここで作ってみた。
この状態で「Next Step」ボタンを押します。
Rule Details画面ではスパムチェックやウィルスチェックの設定ができたりするみたいですが、ルール名だけ入力して他はデフォルト設定でいきます。
「Next Step」ボタンを押すと確認画面に行きますので、確認して「Create Rule」ボタンを押します。
設定完了です。
本当にSESで受信し、S3に保存されるのかを確かめるため、メールを送信してみます。
ドメイン単位で受け取るので送信先メールアドレスのユーザ名部分は任意の文字列で大丈夫です。
S3のバケットに怪しげな文字列のオブジェクトがあれば受信成功です!
ダウンロードし中身を見てもBase64エンコードされているので人間にはわかりません。
Base64デコードすると以下の文字列が現れます。
いぇーい、見えてるー?
見えてる。
これでメールの受信が成功しました。
受信アクションでLambdaも設定できるようですが、本文はついて来ないらしいです。なのでLambdaで受信メールを処理したい場合はS3に保存し、それをトリガーにLambdaを起動させるようです。
ついでにSNSも容量制限のためメール本文はついてきません。
自前でメールサーバ運用しなくてもメール送受信できるっていいね!