awsのsesはメール送信専用なので、受信が出来ない(s3に保存は出来る)! なのでWorkMailを使ってメーラーで送受信できるように試してみた。

awsのsesはメール送信専用なので、受信が出来ない(s3に保存は出来る)! なのでWorkMailを使ってメーラーで送受信できるように試してみた。

1, まずroute53にドメイン(ホストゾーン)を登録する(必須っぽい)
2, aレコードでwebサーバのipを登録する(忘れるとアクセス出来ない)
3, WorkMailで、Organization(組織名)を適当に作る。route53のドメインを割り当てる
4, 左側のusersから、適当なメールアカウント作成
5, 左側のOrganization settingsをクリックすると、Web ApplicationでgmailのようなWebメーラーにログインできる
6, 送信は問題なく出来たけど、メール受信が出来ない(メールデーモンさんに、送り先が分からないよ!と怒られる)
7, route53のレコードとWorkMailのドメインステータスを見比べてみると、dmarcとspfのテキストレコードが抜けてたので手動で修正

う~ん、まだメール受信できない、なんでだ!?
原因不明なので、workmailは諦めてses+s3保存をやってみよう。

1,sesにドメイン名を入力。route53に登録済なので簡単。テスト送信は出来た。
2,左側のEmail Receiving Rule Setsから「Create a New Rule Set」を押して、ルール名を適当に入力する
3,受信するメールアドレスを入力して「Add Recipient」ボタンを押す
4, Actionでs3を選択。新規作成で適当なS3バケット名を入力
5, test-rule-nameなど適当なルール名を入力

これでS3バケットにメールデータがファイルとして格納されるはず…。と思ったらやっぱりエラー!
This message could not be delivered due to a recipient error. Please try again later.

色々と触っていたら、デフォルト・ルールセットとは別に新しいルールセットを自分で作成して、それがアクティブじゃないのが原因っぽい。
アクティブなデフォルト・ルールセットで作り直したらs3に保存されるようになった!

ちゃんと公式ドキュメントを読まないと駄目ね…。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ses-troubleshoot-inbound-emails/