AmazonSESを使って無料で独自ドメインのメールを送受信する

これまでAmazonのWorkMailを利用して独自ドメインのメールを送受信していたのですが、1つのドメインにつき毎月400円を定額で支払う必要があり、ちょっと高いと感じています。

そこで、無料でメールの送信・受信が行えるようSESRoute 53Lambdaを試すことにしました。最終的にはSMTPなどを利用し、Gmailのアカウントでストレスなく送受信できるようにすることが目標です。

*無料と紹介していますが、リクエスト数や送受信量によっては料金が発生します。

通常、独自ドメインのメールを扱うためにはメールサーバーが必要です。一から作るとなると、メールサーバー用にEC2をセットアップしなければならず、コストと時間がかかります。しかしSESを使えばサーバーを利用しなくて済みますし、メンテナンスも必要ないため、低コストで運用が可能です。

この記事ではAmazonSESの設定を行い、S3で受信するまでの手順をまとめました。

Route 53の設定

Route 53でホストゾーンの作成をしていない場合はあらかじめ設定しておく必要があります。すでに設定している場合は不要です。

Route53ホストゾーンの作成

S3バケットの作成

次はS3のバケットを用意します。受信したメールをこのバケットに保管します。すでに存在しているバケットを利用したい場合は新たに作成する必要はないです。

S3バケットの作成

SESとRoute 53の接続

ドメインをSESに認証させます。

SESとRoute53の接続設定1

 

SESとRoute53の接続設定2

 

メールを受信できるようにするためにはEmail Receiving Recordにチェックを入れなければいけません。このチェックを入れると、自動でMXレコードをRoute53のホストゾーンに追加してくれます。

SESとRoute53の接続設定3

 

設定が完了すると1分ほどでステータスがverifiedに変わり、使用できるようになります。

SESとRoute53の接続設定4

メールの送信テスト

SESとRoute53の設定ができたら、メールを送信できるかテストします。うまく行かない場合はRoute53、SESが正しく設定されているか見直します。

SESでのメール送信テスト

SESとS3の接続

最後に、SESの受信ルールを作成し、メールをS3のバケットで受け取れるようにします。

既存のルールセットがある場合はそのルールセットをクリックしてCreate Rule

ない場合はCreate Receipt Ruleというボタンをクリックします。

SES受信ルールセットの作成1

 

受信のメールアドレスを追加します。追加するアドレスはhogehoge@example.comとかです。hogehogeの部分はなんでも好きな文字列を設定できます。何も追加しない場合は、@example.comである全てのメールが受信されます。

SES受信ルールセットの作成2

 

S3のバケットをActionに指定します。Object key prefixを設定すると、その設定した文字列でバケット配下にフォルダを作成し、その中にメールを入れてくれます。Encrypt Messageはメールを暗号化するオプションです。暗号化されたメールはSESのマスターキーを使って復号化します。そこまでセキュリティを強固にする必要がなければ外しておいて大丈夫です。

SES受信ルールセットの作成3

 

ルールの名前とルールセットを指定し、レビューして完了です。設定が正しければAMAZON_SES_SETUP_NOTIFICATIONという名前のオブジェクトがバケットに作成されます。

SES受信ルールセットの作成4

 

最後に、ルールセットがアクティブになっているか確認します。アクティブになっていなければ、Set as Active Rule Setをクリックし、ルールセットを有効にします。

SES受信ルールセットの作成5

 

メールの受信テスト

Gmailなど、利用しているメーラーから設定したメールアドレスへ送信し、ちゃんとメールが受け取れているか確認します。

SESでのメール受信テスト

 

バケットにオブジェクトが作成されない(受信できない)場合は次の点を見直します。私は受信ルールが有効になっておらず、ハマりました。

  • Route 53にMXレコードが設定されているか
  • 受信ルールセットがアクティブになっているか

まとめ

SESとRoute53、S3を使って、独自ドメインのメールをサーバーレスで送受信できるようになりましたー。やったね!次はGmailで使えるようにしますー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.