やりたいこと
受け取ったファイルを自動でどこかに保管し、管理したい(後続の処理で使いたい)!
- ファイルの受け取り方法: メール
- ファイルの保管場所: どこでも
考えた案
保管場所をAmazon S3にして、Amazon SESの Rule Setsを使用する
指定のメールアドレスにメールが送られたら、メールの内容(MIME)をS3にアップロードするよう設定する
前提条件
指定のメールアドレスには、Amazon Route53で用意したドメインのメールアドレスを用いる
事前準備(SESへ権限追加)
SESからS3にアップロードする際は、S3 バケットに書き込むためのアクセス権限をSES に付与する必要がある。
方法は、 公式の記事 参照。
※ この事前準備(S3 バケットにSESに権限の付与)をせずにSESの設定を進めると
後述するStep4 で下記のエラーが出ます。先に設定しましょう。
Could not write to bucket: XXXXX (Request ID: XXXXXXXXXXXXXXX)
SES Rule の設定を行う
メールが届いたらS3にアップロードするよう、設定を行う場合は
SESのルールと呼ばれるものを設定します。
リージョンはオレゴンに設定(社内の他のプロダクトに合わせたため)
Rule Sets
という部分を押下すると、Create a Receipt Rule
というボタンが出てくるので
そのボタンをクリックでルールの設定を進められます。
Step 1 : Recipients(受取人)の設定
ここで設定したアドレスにメールが届くと、このルールが適用されます。
Add Recipients
押下で、メールアドレスがセットされます。
セットされたアドレスはドメインの検証が必要となるため、Verify domain
を押下します。
ドメインの検証が終わったら、Next Step
を押下し、次のステップに進んでください。
ドメインの検証
ドメインのDNS設定にレコードを追加
↑の画像にある、Verify domain
を押下すると、モーダル出現します。
SESがドメインを認証するためのTXTレコードが表示されるので、表示されたレコードをDNSへ登録してください。
前提条件で述べたとおり、今回はドメインにRoute 53を使用しているので、Use Route 53
をクリック
※ Use Route 53ボタンが無く押下出来ない場合や、ドメインの管理を他のサービスで行なっている場合は
値をメモっておき、Route53やその他サービスのドメインにレコード追加すればOKです。
もし、下記のWARNINGが出た場合
「このオプションは、既存のすべてのmxレコードを置き換えますが、問題ないですか?」という確認なので
問題ければ、そのままEmail Rceiving Record
のチェックボックスにチェックを入れCreate Records Sets
を押下で
ドメインの検証が完了します・・!
ドメイン検証完了の確認
Route53で、Step1で設定したアドレスのドメイン確認します。
MXレコードとTXTレコードが追加されていればOK!
補足
ドメインの検証をせずに、ルールの設定を完了してしまった場合・・・
ドメインの検証は、ルールの設定の最中ではなく後からでも可能です。
SESの「Domains」にてVerify a New Domain
押下で設定するか、
Domain Identiesの一覧にある、ドメインから検証完了していないドメインを選択すると
検証をする画面に遷移するので、ドメイン検証可能です。
Step 2 : Actionsの設定
ドメインの検証が終わりモーダルを閉じたら、引き続きルールの設定が可能。
今回は、S3のバケットにアップロードしたいのでS3を選択!
選択したら、Next Step
押下します。
us-west-2.console.aws.amazon.com_ses_home_region=us-west-2 (4).png
次にアップロードするS3バケットと、バケット内のどのに格納するかのkey(ディレクトリ)名を設定します。
Step 3 : Rule Detailsの設定
ルールの詳細を設定できます。
今回は、ルールの名前だけ設定します。
あとはデフォルトのままにしました。(デフォルトのままの部分は、TLS対応やSPAM、ウィルスのスキャンを設定できるそうです。)
Step 4 : ルールの確認
ルールを確認し、問題なければCreate Rule
を押下。
これで、SESのRule設定完了です。
動作確認方法
Step1で設定したメールアドレス(Recipients)にメールを送信すると
MIMEデータが指定のS3バケット内にアップロードされることが確認できます。
Step2で指定したS3バケットを見に行きましょう。