SESのDomainのverifyについて

 

SESのDomainのverifiyでは何をどう設定すればよいのか、設定にどれくらいの時間がかかるのかという点にとまどうことがあります。

 

SESでは送信元となるEmailアドレスについて、あらかじめverify(有効性の事前確認)をされていなければなりません。verifiedされたEmailアドレスからのみメールを送信することが可能となります。verifyを実行すると対象となるアドレスに対して、SESから確認のメール(Amazon SES Address Verification Request)があり、メールの中にあるURLにアクセスすることで有効性の確認が行われ、verifiedになります。

 

複数のEmailアドレスからメールを送信する場合は、それぞれのEmailアドレス毎にこの作業を行うのは面倒です。DomainをverifyすればそのDomainからのメールはすべて送信可能となります。Domainをverifyでは、該当Domainに指定されたTXTレコードをDNSサーバに登録します。その後、AWSが(おそらく一定間隔でTXTレコードをルックアップして)そのDomainの有効性を確認しているようです。

 

使用しているDNSサーバがRoute 53でも企業独自DNSサーバでも同様ですが、TXTレコードに対して、下のName/Valueの値をそのまま登録します。何も余計な文字列は加えません。ただし、Valueに関してはダブルクォテーションで囲む必要があります。これはSESの仕様というより、DNS側の仕様(RFC仕様)によると思います。実際にRoute 53でTXTレコードを登録する際にValueに文字列だけを登録しようとするとエラーとなり、登録できません。文字列の最初と最後にダブルクォテーションをつける必要があります。

 

f:id:temporal:20130223230047p:plain

 

verifyにどれくらい時間がかかるのかという目安ですが、おおよそですが、Route 53の場合は10分程度、独自DNSサーバであれば3時間以内くらいが目安かなぁという感じでした。これはあくまで目安であり、正式文書では最大72時間かかる可能性もあるようです。

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html

If you are not using Route 53, Amazon Web Services needs to verify that the TXT Name and TXT Value have been added to your DNS settings. This may take up to 72 hour

 

上のおおよその時間を過ぎてもDomainがverifyされない、verifiyが失敗している場合は以下のコマンドを実行して、期待するtxtレコードが取得できるか確認しましょう。

$ dig testtext.ドメイン名 txt