AWS SES + Google Domains でメール送信してみた

## 概要

**本投稿は「AWS SES」をちょっと試してみたい人用です**

AWSにはSES（Simple Email Service）というメール送信サービスがあります。
Webサービスに使うアラートメールとかに重宝しますし、設定も簡単なのでとても便利だと思います。

実際に使うかどうかは置いといて、
簡単に設定できるので、ハンズオン的にまとめてみました。

**目標** ： AWS SES を使ってテストメールが送れるので、送信できるところまで試してみます。
**所要時間** ： 1時間（内待ち時間30分） ぐらい。

始める前に、次のものをご準備ください。

## 準備するもの

- AWSアカウント  
　アカウントを作成しよう！（ https://aws.amazon.com/jp/register-flow/ ）
- ドメイン  
　ドメインを取ろう！（ https://domains.google/intl/ja_jp/ ）  
　その他、[お名前.com](https://www.onamae.com/) や [ムームードメイン](https://muumuu-domain.com/) でもOKです。
- メールアドレス（受信メールが確認できるもの）  
　GmailでOK

## AWS SES を開く

- まずは、AWS SES を開きます。以下のURLにアクセスします。
　https://console.aws.amazon.com/ses/home

- リージョンを選択
　東京リージョンは対応していないので、米国東部（バージニア北部）などを選択します。

## ドメインを登録

- ドメインを登録します。  
　このドメインは、送信メールアドレスに使用します。

**■ AWS SES コンソール画面**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/efe550cd-8c00-4185-3e55-83261e7aecb6.png)
　① **Domains** を選択します。
　② **Verify a New Domain** を選択します。

**■ ドメイン登録画面**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/49eca96a-48b8-0711-3f5c-3816bf2e7713.png)
　① **Domain** にドメインを入力します。（例）example.com
　② **Generate DKIM Settings** にチェックを入れます。
　③ **Verify This Domain** ボタンを選択します。

> DKIM（DomainKeys Idetified Mail）は、電子メールにおける送信ドメイン認証技術の一つです。
> （ 参考: https://www.nic.ad.jp/ja/basics/terms/dkim.html ）

- 次のような画面が出ますが、**すぐに閉じないでください。**

**■ DNSレコード設定情報**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/0c681dea-3acb-1015-44e9-37a2a53f17b8.png)
　① **Download Record Set as CSV** を選択して、CSVファイルをダウンロードします。

## DNS設定

**DNSレコード情報を DNS に設定します。**
先ほど取得したCSVファイルに、設定する情報が記載されています。

> 本投稿では Google Domains を使用して説明しますが、
> やり方はどのドメイン会社もほとんど一緒です。

- Google Domains を開きます。以下のURLにアクセスします。  
　https://domains.google/intl/ja_jp/

**■ DNSレコード設定画面**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/120770c7-3a98-8d77-2f99-4c8e1c8c2a3f.png)
　① **DNS** を選択します。
　② CSVファイルを参考に、**レコードを追加**していきます。
　~~黒塗りばっかりになってしまった...~~

## DNS認証の確認

- AWS SES に戻ります。
　https://console.aws.amazon.com/ses/home

- 登録したドメインの Verification Status を確認します。

**■ 未認証の状態**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/aca2126e-6fca-3cb0-fa3d-b040938f706f.png)

**■ 認証済みの状態**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/df0516d9-84ed-43be-529e-3a4502ad1851.png)
　① **Verification Status** が 「**verified**」 になっているのを確認します。
　　 DNSの設定をしてから、少し時間がかかります。

## メールアドレス認証

- メールアドレスを登録します。  
ここで登録するメールアドレスは、**送信先として許可するメールアドレス**です。

> AWS SES では、許可した送信先にしかメールを送信できません。
> 送信先制限の解除も出来ますが、本投稿での説明は省きます。

**■ AWS SES コンソール画面**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/9c8db006-d8f4-757d-820d-70ab6f126f1a.png)
　① **Email Addresses** を選択します。
　② **Verify a New Email Address** を選択します。

**■ メールアドレス登録画面**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/ae4ebaea-adcc-2930-d454-cf2b64751565.png)
　① **Email Address** にメールアドレスを入力します。（例）example＠gmail.com
　② **Verify This Email Address** ボタンを選択します。

- 登録したメールアドレスにメールを送った旨のメッセージが表示されますが、そのまま閉じます。
- Gmailなどの受信トレイを確認します。

**■ AWSからの受信メール**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/ed5a1aa0-26d8-980a-62b0-dddaf37aebbe.png)

- リンクをクリックします。
- 「検証に成功しました」というメッセージが書かれたページが表示されます。

## 送信テスト
設定が完了したので、メールを送信してみます。

- 送信メールを作成します。

**■ AWS SES 画面 (Domains)**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/9114aa9c-9e30-eaaa-7658-ee7ad568afc4.png)
　① **Domains** を選択します。
　② 対象のドメインにチェックを入れます。
　③ **Send a Test Email** を選択します。

**■ 送信メール作成画面**
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113289/310c4442-d427-88dd-7b78-240d8133b245.png)
　① メールを作成します。
　　**FromはなんでもOKです。Toには必ず認証したメールアドレスを入力してください。**
　② **Send Test Email** を選択します。

- Gmailなどの受信トレイを確認します。
- **作成したメールが受信出来ていればOKです！**

お疲れさまでした:grinning:

## お掃除（任意）
設定した内容を削除するまでが、ハンズオンです。（削除するかどうか自由です。）

**AWS SES**

- Domains から削除
- Mail Addresses から削除

**Google Domains**

- 設定したDNSレコードを削除

## 最後に
AWS SES と仲良くなれましたでしょうか。
WEBアプリの運用に AWS SES を採用したことがありますが、とても手軽に実装できました。
運用中のバウンスメールには頭を悩まされましたが。。

AWSにはいろんなサービスがあるので、じゃんじゃん使っていきましょう！