見出し画像

Amazon SESでドメインIDの検証がいつまでも保留中だったときの対応まとめ

※結論だけ見たい人は目次の見出しから飛んでください



お客さんのところでまとまったメール(といっても1000件はいかない)を送信する必要があり、レンタルサーバーとかのメールだとスパムと判断されていきなり止められるなんてことが起こりそうなのでAmazon SESを契約することにしました。

Amazon SESはAmazonのメールサーバーみたいなサービスです。あらかじめアドレスやドメインをサンドボックス上でしっかり検証した上で本番にアップグレードするようになっているため、スパム嫌疑をかけられてサーバーを止められるなんて可能性もレンタルサーバーよりは低いです。受信者からスパム判定だったりした件数もダッシュボードでわかるようになっています。

SESはアドレスやドメインごとにきちんと有効なものかどうかを検証するプロセスがあります。メールアドレスは検証用のメールを送信してもらって、リンクをクリックするというよくあるタイプのものなのですが、ドメインまるごとを対象とする場合はDNSに指定されたCNAMEを設定する方法をとります。

今回はドメイン検証だったので、生成されたCNAMEを利用しているDNSのレコードに追記するだけで済みました。が、いつまでたっても検証保留中とでてしまい本番へ移行することができません。対策としては次の3つが考えられます。

  1. ドメインまるごとをやめてメールアドレスの検証に切り替える

  2. DNSのTTLを見直す

  3. CNAMEのNameが正しいかを見直す

1ができれば楽でいいんですが、今回はパスです。2についてはTTLが3600とかになっていると検証までに時間がかかることが考えられるので、一旦600(10分)とかにしておいて、検証が終わったら元の数値に戻しておくのがいいかもしれません。
今回TTLを600にしてみても一向に検証が完了しなかったので、3のケースを疑いました。

CNAMEの値を修正する

一度ドメインを削除して再度設定をやり直しましたが、生成されるCNAMEは同じものでした。Amazonのドキュメントを見てみると、このようなことが書かれていました。

CNAME レコード (Easy DKIM の場合) または TXT レコード (BYODKIM の場合) に正しい名前が使用されていることを確認します。DNS プロバイダーによっては、作成するレコードにドメイン名が自動的に付加される場合があります。たとえば、example._domainkey.example.com の [Name] でレコードを作成した場合、DNS プロバイダーはこの文字列の末尾にドメインの名前を追加して、example._domainkey.example.com.example.com という名前にします。詳細については、DNS プロバイダーのドキュメントを参照してください。

https://docs.aws.amazon.com/ja_jp/ses/latest/dg/troubleshoot-dkim.html

何言ってるのかわからん文章ですが、かりにexample.com のCNAMEのNameをhogeに設定した場合、フィールドにはhogeしか入れてないのにレコードとしてはhoge.example.com になってる場合があるよということでした。
そして利用しているDNSはまさにそれで、フィールドにAmazon SESが生成したCNAMEをそのままコピペしていたので hoge.example.com.example.com という形になって登録されていました。

サービスによっては設定されているレコードのサマリーが表示される画面があると思うので、そこでレコードの状況を確認しましょう。そしてドメインが2個連続している場合は、Amazon SESからコピーした値からドメイン部分を削除して登録し直せばOKです。
ウチはこれで検証が完了して、無事本番への移行手続きに入ることができました。

皆様の検証が無事終わることを祈っています。それでは。

よろしければサポートをお願いします。得られたお金は社で飲むコーヒー豆や撮影機材の購入費用に充てようと思っています。