2021年5月1日土曜日

AWS のWorkMail で受信ができずにハマった話

 AWS のサービスである、WorkMail を利用したいと思い、セットアップをしました。

セットアップ自体はとても簡単で、Route53 でドメイン取得しておけば、MX レコードとかを自動で追加してくれるし、DKIM も勝手に設定してくれるので、これからメールサーバーを導入される小規模事業を始める方にはとてもオススメです。

こちらのサービスを導入しようとセットアップしたところ、メールの送信はすぐにできたのですが、メールの受信ができずに困りました。

gmail からメールを送信しても、MAILER-DAMON からメールが送れませんとのメールが迷惑メールボックスに届きます。

ほとんどの人はこのような事象には遭遇しないようで、同様の事象が発生している人も、WorkMail で作成したUser を一度Disable にしてからEnable にすると治った、という投稿もありましたが、そんなにうまくは行きません。

調査を進めたところ原因は、過去に作成したメール受信のルールセットの優先順位が、今回作成したWorkMail のルールよりも上に存在していたことにより、このルールセットが邪魔してメール受信ができていませんでした。

事象解消のための具体的な手順としては、Amazon SES のコンソールを開き、下記のEmail Receiving > Rule Sets から、View Active Rule を開きます。


具体的な原因は、下記のRule name のm-8 から始まる名前のものが他のルールよりも下にあるので、これを一番上の状態(下記の画像の状態)にします。


やり方は、対象のRule name をクリックして、編集画面を開いたら、下記の画像にある通り、Enabled になっていることを確認して、Run after rule で<Beginning> を選択してSave Rule ボタンを押して設定を保存することで、m-8 のRule の優先順位が一番高くなるので、この状態に修正すればメールが受信できるようになります。


この事象は、過去にメール受信の設定を自分で組んでいた場合に発生するため、新規にAWS を利用したり、過去にAmazon SES を利用したことがない人であれば遭遇しない事象となります。
最初は、Amazon SES がsandbox の状態だったので、これをproduction access にしなければいけないのかとも思ったのですが(Amazon の公式資料に、そのようなことを想像させる一文がGetting started receiving email の項にある)、公開情報を見ると、すべて送信時の制約しか記載が無いため、恐らく違うなと考えていました。




以外と半日ハマってしましましたので、皆様はハマらないように参考にしていただけると幸いです。