独自ドメインでメールを受信するためには、通常、ドメインの取得とメールサーバを用意する必要が有ります。
今回は、出来る限りお金をかけずに実現するために、DDNS(Dynamic DNS)とAmazon SESを使って無料で独自(サブ)ドメインメール受信を実現してみます。
DDNSの申し込み
利用するDDNSは、以下2つの要件を満たす必要があります。
- MXレコードが利用できること(メール受信のため)
- TXTレコードが設定できること(後述します)
今回はDynamic DOを利用します。
Dynamic DO!.jp - ダイナミックDNS -
http://ddo.jp/
「ddo.jp サブドメイン DDNS」の無料登録ができるので、適当なサブドメインを取得しましょう。
MXレコードの追加
DDNSの登録が終わったら、MXレコードの登録をします。
Amazon SESでメールを受信できるようにするには、取得したサブドメインをAmazonのSES Eメール受信エンドポイントに向ける必要があります。
なお、Amazon SESは利用できるリージョンが限られているので、エンドポイントも利用するリージョンに合わせる必要があります。
Amazon SES による E メール受信のための MX レコードの公開 - Amazon Simple Email Service
今回は米国東部(us-east-1)を利用します。
米国東部(バージニア北部) -> inbound-smtp.us-east-1.amazonaws.com
Dynamic DOの各種申請
からMX レコード・メール転送変更
へ進みます。
MXレコードの欄に優先順とAmazon SES Eメール受信エンドポイントを入力し登録します。
- 優先度 : 10
- ホスト : inbound-smtp.us-east-1.amazonaws.com
これで取得したサブドメイン宛にメールが送られると、登録したMXレコードが参照され、Amazon SESへ送られます。
SESの設定
次はSESを設定します。
AWS Management ConsoleからSESを開きます。
東京リージョンを普段使いしている人は大体こうなるので、別リージョンを選択しましょう。
今回はエンドポイントを設定したUS Eastを選択します。
Email Receiving
からRule Set
を開きます。
先ほど取得したサブドメインを入力し、Add Recipient
を押します。
一覧に追加されるので、Verify domain
をクリックします。
ドメインの所有者であることを証明するため、TXTレコードを登録するように指示されます。
ここでは一旦Download Record Set as CSV
を押して保存しておき、Close
を押して次へ進みます。
メールを受信した時のActionを設定します。
S3を選び、
保存するS3バケットを設定します。
他にもSNSで通知させたり、Lambdaを動かしたりできるのですが、今回は省略します。
最後に設定内容を確認し、Create Rule
をポチれば完了です。
Verification
Dynamic DOのページに戻り、先ほどSESから指定されたTXTレコードを登録します。
各種申請
からTXTレコード変更
を開きます。
先ほどSESから指定されたTXTレコードを入力し登録します。
ドメインのところには_amazonses
(SESが指定したNameの部分)を入力します。
Amazon SESの画面に戻り、Identity Management
からDomains
を開くと、ドメインのVerificationの状態が確認出来ます。
無事verified
になりました。
テスト
Gmailなどから適当にメールを送信してみましょう。
宛先メールアドレスの@
マークの前は何でもOKです。
今回はadmin@<サブドメイン>.ddo.jp
へ送ってみます。
ファイルは拡張子がありませんが、.eml
形式のファイルになっているので拡張子を付けてあげればOutlookなどで開けます。(もちろんテキストエディタで開いても構いません)
※正確には、RFC 2045
準拠のraw Eメールです。
まとめ
無料DDNSとAmazon SESをを組み合わせることで、独自(サブ)ドメインでのメール受信環境を整えることができました。
SESは1,000件/月の受信まで無料枠があるので、お金をかけずに運用することができます。
料金 - Amazon Simple Email Service(SES) | AWS
ACM(AWS Certificate Manager)のVerificationをする際にadmin@ドメイン名
などでのメール受信環境が必要なため、そういった使い道があるかと思います。
DDNSでWebサイトを運用する際にも利用できそうですね。
参考サイト
[新機能]Amazon SES でメール受信が出来るようになりました! | Developers.IO
Cloud Automator | SESのEmail ReceivingとSNSによるEメールトリガーでジョブを実行する