SES(メール送受信)

AWS

Lightsailに切り替えてから、SES連携をしてなかったので、Lightsailと外部でメールの送受信ができるところまでを行った記録。

2020/7月から、SESが東京リージョンで利用可能になった、とあり、東京でSESセットアップするつもりが、進めてる途中でわかったのですが、東京は送信のみで受信ができないとの事。 という事で、バージニア北部を選択。

SESへのドメイン追加

https://aws.amazon.com/jp/ses/ からアクセスしてサインイン。

リージョンがバージニア北部になってなければ、バージニア北部に変更。

Create Identityで作成開始。

Domainを選択し、自分のドメインを設定。 私の場合はこのBlog同様、”codecreare.com”。 

今回はRoute53を使わず、Lightsailだけでサーバ構築しているので、”Publich DNS records to Route53”はチェックを外すして作成。

ここまでで、SESでidentity作成までは完了。

LightsailへのSES関連DNSレコード設定

CNAME、MX、TXTの3つを設定する。

CNAME3つに関しては、上記で作成したidentityのAuthenticationタブで確認。

LightsailのDNS設定を開く。

MX、TXT(amazonses)、CNAMEを3つ、計5つのレコードを、”レコードの追加”から追加していく。

CNAME3つは、上記の”Authenticationタブ”で確認した内容を設定。

MXに関しては、今回はサブドメインは設定しないので”@”でOK。

マップ先はリージョンごとに決まっている。 今回は上述した通り、”バージニア北部”を選択しているので、この場合は、”inbound-smtp.us-east-1.amazonaws.com”となる。

amazonsesのTXTレコードが少し難しい。 サブドメインは、”_amazonses”を入力。

応答テキストはコマンドラインから確認必要。

nslookup -type=TXT _amazonses.<ドメイン>

のように入力して確認。  <ドメイン> の部分は、このサーバでいうと、”codecreare.com”

緑で囲ってるtext部分を、応答テキストとしてLightsailへ設定する。

外部との送受信を可能にするために

外部との送受信を可能にするために、SandBoxモードから、productionモードに移行する必要があります。 これは、SESのコンソールから対応が必要です。

Request production accessを選択。 以降の画面で、サーバのURL等の申告を求められるので設定する。

SESメール受信設定

SESの設定で、メール受信時のルールを設定する必要がある。 これをしないと、外部からSESへメール受信できない。

Email receiving から Create rule set を選択。 

ルールセットの名前を適当に入れて、 Create rule set を選択。

ルールセットに、ルールを1つ1つ追加必要。 Create ruleを選択して、1つ追加。

1つ目のルールの名前を適当に入れて、Next。

Recipient condition 欄には、今回はドメインへの受信に対するルールを設定。 Next。

まずは一旦、S3へ保存するところまでを設定する事とする。 Add new actionからDeliver to S3 bucketを選択し、Next。

今回はこの1つのルールだけで設定終わりにする、Next。

Create ruleを選択し、ルール作成完了。

最後に重要なポイント。 ルールセットを有効にする必要がある。

Set as activeを選択。

Activeアイコンがついている事を確認。

動作確認

上記設定をしてしばらくしたら、productionモードになり、上記の

”Your Amazon SES account is in the sandbox in ****”の表示が出なくなるので、送信、受信の確認を行う。

受信確認は、gmail等の外部メールから、test@ドメイン(この場合はcodecreare.com)へメール送信し、S3へアクセスし、上記で作成したS3バケットにメール送信データが追加されている事を確認。

データは暗号化されているが、一旦ここでは、メール送信するたびにバケットに1つデータが追加されていたらOK。

送信に関しては、Lightsailにpython等のプログラムからメール送信ができる事を確認するので、別記事で詳細を記載予定。

コメント

  1. […] 前回、SESとS3の設定を行い、Gmailから送信したメールが、S3バケットに格納されるところまでを行ったので、今回はPythonからそれに受信したメールにアクセスできるようにする事と、Pythonから送信する事を進めていく。 […]

タイトルとURLをコピーしました