見ながらやろう！ AWSを使った「簡単!! 独自ドメインの送受信システム構築」#前編

後編はこちら

https://qiita.com/nago3/items/df0d4705841d22404d10


## 経緯

2017年1月でIT業界に入ってから2年が経ち、今までの手探りで
解決できてこなかったところを解決しようと思い至りました。

## 経歴

1. [航空機専門商社で社長秘書]
2. [鉱山で発破屋]
3. [アメリカで飲食起業]  
4. [日本でIT起業] <-(イマココ)

IT業界は2017年1月、プログラミングスクールに通ったのが最初で知識はほぼゼロ。
ネットサーフィンでHTMLとかを聞いたことがある程度。

就職して経験を積むというプロセスなしにそのまま友人と起業してCTO()を名乗る。
Rubyなどの言語が全く身につかず嫌いになり、AWSやインフラに愛しさを覚える。

聞ける人がいない中での手探りによる独自の進化(ゴリ押し)を遂げた。


## 注意！！！

今回の記事は初学者向け、もしくは自分のようなアドバイスがなくて解決方法を模索している方が対象です。<font color=red>周りに正しい知識や経験を聞ける方や、経験の長い皆様は「ほーん、こんな奴もいるんだ」程度で認識していただけると幸いです。</font>


## やりたかったこと

#### 要望:

* 会社HPにコンタクトフォームをつける
* メールを会社ドメインで送るべ
* スタートアップだしお金かけたくないよ

#### 自分のレベル:

* 会社ページは[ S3 ]で作っていたから、サーバいじれなくね？
* メールってそもそもどうやって使えるようになるん？
* 調べたけど、自分でメールサーバ立てたら絶対管理できん！！
* そもそもメールサーバわけわかんね...


## 失敗の積み重ね

##### SendGridいいよ？
=> 送るはできたけど、結局受信ってどうやるん？

<font color=red>出来上がったのは、見た目だけの動きもしないコンタクトフォーム</font>


##### Postfixやったれ！
=> 設定を拾ってくるも結局どこまでうまくいってるかもわからず。

<font color=red>初心者には余りにもセキュリティ、時間、学習コスト全てが見合わない...</font>


##### 結局は [SendGrid + Zapir] というので一旦受信はできたから放置へ


## 今回やったこと

**メールの送受信を(従業員全体が)使い慣れているGmailでできるようにする**

前提条件:

<font color=red>Route53に使用するドメインの設定がされていること</font>

作業内容:

```
#前編   <- (今回はこれ)

1. AWSでSESの設定をする
  1. 送信の設定に使うメールアドレスの登録
  2. 送受信の設定に使うドメインの登録
  3. IAMユーザ作成
  4. メールの受信用S3バケットの作成、設定
  5. Gmailでの送信設定
```

**#後編**

2. SESの送信制限の解除
  1. 現状の確認
  2. サポートから内容を申請
3. SESで受信した内容をGmailに転送する


## 1. AWSでSESの設定をする

SESとは...

https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/Welcome.html

AWSが提供しているマネージドサービス(サーバの管理はAWSがやってくれるサービス)の1つで、
メールサーバを貸してくれる。そんな感じ。

メリット:

* 管理しなくていい
* 送受信の設定を提供してくれているので、やることは少ない

デメリット:

* 日本のキャリアメール(docomo, au, softbankなど)には向かない
* 日本リージョンにはないので、海外のリージョンを使うことになる

<font color=red>今回はオレゴンリージョンを使います。</font>


### 1-1: 送信の設定に使うメールアドレスの登録

まずは画面右上のリージョンをオレゴンに設定します

<img width="1439" alt="1-1-1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/2cbc8532-5e4f-547d-8a6c-6ed72cd96f3f.jpeg">

次に画面左上サービスから[ SES ]を選択します

<img width="1440" alt="1-1-2.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/67ffd06a-0ae9-e124-16b3-bd04a526f06d.jpeg">

SESのコンソール画面に入ったら、サイドバー[ Email Address ]から[ Verify a new Email Address ] のボタンを押します

<img width="906" alt="1-1-3.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/7b8acad8-d2e8-64d0-74ce-40c1ef0134fb.jpeg">

受信に利用したいメールアドレスを入力します

<img width="1117" alt="1-1-4.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/6b7e77d1-88a5-4e96-0d33-727cdd32f7e2.jpeg">

Gmailでメールが届いていることを確認し、文章内のURLをクリックします

<img width="1117" alt="1-1-6.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/615cfaf9-eb9a-45d1-2485-710651701402.jpeg">

Congratulations!!
おpめでとうございます、ということで一先ず[ SES ]からこのGmailアドレスのメールを送れるようになりました。

<img width="1440" alt="1-1-7.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/ff2480e9-3ad8-dc01-43da-b587059f31b8.jpeg">


### 1-2: 送受信の設定に使うドメインの登録

今度は使用するドメインの設定を行います
サイドバー[ Domains ]から[ Verify a New Domain ]をクリックします

<img width="946" alt="1-2-1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/18f9e08d-1c7e-e8cc-898d-dc8216f0cc2c.jpeg">

使用する[ Route53 ]に設定済みのドメインを記入し、
下にある[ Generate DKIM Settings ]のチェックを入れてから
[Verify This Domain]をクリックします。

<img width="1308" alt="1-2-2.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/d97ec7c7-58c2-2348-438d-77a757ec8ad5.jpeg">

画面いっぱいに設定データが表示されます

<img width="1440" alt="1-2-3.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/ba1e92ab-39ce-1638-e465-abd129fd14b2.jpeg">

画面をスクロールし、下部の[ Use Route53 ]をクリックします

<img width="1440" alt="1-2-4.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/df83339c-5f88-9f50-ba5c-9331bca2e8c3.jpeg">

各所項目からどれを[ Route53 ]に設定するか選びます
今回は受信も行うので、<font color=red>全てのチェックボックスをオンにします</font>

<img width="1440" alt="1-2-5.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/7b92cca1-4c57-59ad-fb37-503b7aa4dbb9.jpeg">

最後にドメインが表示され、全ての項目が<font color=green>緑色</font>になれば完了です

<img width="1440" alt="1-2-6.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/0f9fb4c8-b483-0017-62be-ab06f335b4b3.jpeg">

<img width="1440" alt="1-2-7.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/e502645d-cd6e-1819-d284-86acb5148766.jpeg">



### 1-3: IAMユーザ作成

引き続き[ SES ]のコンソール画面です
サイドバー[ SMTP Settings ]から[ Create My SMTP Credentials ]をクリックします

<img width="964" alt="1-3-1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/fea2ea80-4ea1-c1ce-8ae2-e383487698c8.jpeg">

画面が自動で遷移し、ユーザ名が自動で生成されます
ここはご自身でお好きに変えてください
[ 作成 ]をクリックします

<img width="1440" alt="1-3-2.png" src="https://qiita-image-store.s3.amazonaws.com/0/161922/7c9b5cc5-8cf9-c935-56aa-b8144303cdd8.png">

作成を押すと[ 認証情報のダウンロード ]という部分をクリックし、ファイルをダウンロードしましょう
ブラウザはFirefoxなのでダウンロードの表示がありますが、Chromeでは勝手に保存されます

<img width="1440" alt="1-3-3.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/c04986fb-2142-5c0c-8b97-5c1190453f27.jpeg">

終わったら[ SES ]の画面に戻りましょう
再びサイドバー[ SMTP Settings ]を押すと、SMTPの設定項目があるのでメモしておきましょう

<img width="945" alt="1-3-4.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/8f2bc204-0d95-ba71-a411-4d6d44d662d8.jpeg">


### 1-4. メールの受信用S3バケットの作成、設定

メールの使用には、メールを一旦受信して確認する作業が必要なので、受信の設定を行います
サイドバー[ Rule Sets ]から[ Create a Receipt Rule]をクリック

<img width="814" alt="1-4-1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/5194b6a8-7853-b41f-473c-6c9292cc2a54.jpeg">

使いたいメールアドレスを設定して[ Next Step ]をクリックします

<img width="967" alt="1-4-2.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/b32015bd-a43f-5689-776e-40d84a2c9ee4.jpeg">

<img width="1440" alt="1-4-3.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/de570b8f-3a61-8257-c200-85ec1d9c0163.jpeg">

次の[ Actions ] の項目で、受信先の設定を行います
[ Select an action type ]から[ S3 ]をクリックします

<img width="844" alt="1-4-4.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/151042ff-0039-e0c8-af05-754de851a37f.jpeg">

SESのメール受信用のバケットを作成します
[ S3 bucket ]から[ Create S3 bucket ]をクリックします

<img width="878" alt="1-4-5.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/c34c2fb6-8155-1531-cb25-329ec572c656.jpeg">

バケット名を入力し[ Create Bucket ]をクリックします
<font color=red>この時、バケット名は世界で一つだけのもの(一意)である必要があります</font>

<img width="1047" alt="1-4-6.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/cf097103-2641-5a01-a1b5-8a8650bd8c2d.jpeg">

プレフィックスとして[ mails ]と入力し[ Next Step ]をクリックします

<img width="1440" alt="1-4-7.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/701ec799-6da2-97da-fd72-652136a9af86.jpeg">

最後に受信ルールの名前を設定して完了です
ここは基本的に弄らなくて大丈夫です

<img width="1440" alt="1-4-8.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/038b63fc-0815-96df-2536-d3274c325bfa.jpeg">

確認画面になるので項目をチェックして先に進みます

<img width="1440" alt="1-4-9.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/4253f3df-cc45-8176-d518-b06cbce56e49.jpeg">

作成できたか、SESのコンソール画面で確認できます

<img width="960" alt="1-4-10.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/ecd5bcaa-8245-b57f-95fe-7780276485a8.jpeg">

最後にバケットが作成されたことを確認します
画面左上[ サービス ]から[ S3 ]を選択します

<img width="914" alt="1-4-11.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/f77e4266-32bb-3769-737d-3a0518f338b8.jpeg">

バケットが作成されていることが確認できました

<img width="1440" alt="1-4-12.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/d46ffeba-c538-e15e-e4ec-7209e41317bb.jpeg">

プレフィックスに設定したディレクトリもありますね

<img width="992" alt="1-4-13.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/5714daaf-7a22-4fb0-b2dd-fe36b0e7ad4f.jpeg">


### 1-5. Gmailでの送信設定

今度はGmailに移動します

<img width="1384" alt="1-5-1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/1dbadf0a-b4af-3a27-7bf9-f0f8c0b6d68a.jpeg">

Gmailコンソール画面右上の歯車をクリックし[ 設定 ]に進みます

<img width="232" alt="1-5-2.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/c3a045cd-dc5a-dc0b-8a69-9b83373f1e23.jpeg">

タブ[ アカウントとインポート ]から[ 他のメールアドレスを追加 ]をクリックします

<img width="854" alt="1-5-3.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/95138c7a-1c1b-4038-9993-005ba6754563.jpeg">

設定するメールアドレスの名前とメールアドレスを設定します
**e.g.**

> 名前: nago3
> メールアドレス: `nago3@hogehoge.com`

<img width="458" alt="1-5-4.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/42848bcf-a9ce-287c-f989-ecbaeaf61858.jpeg">

先ほどメモした内容と、IAMユーザを作った時の情報を記入します

<img width="598" alt="1-5-5.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/75549c18-bab1-1881-349d-8b84161f01de.jpeg">

ユーザ名とパスワードは、IAMユーザのダウンロードした情報の中に入っていますので確認しましょう

<img width="633" alt="1-5-6.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/a0ceaafe-a8f9-1a25-c59a-2da76789c361.jpeg">

設定が間違っていなければ、この画面になります

<img width="1005" alt="1-5-7.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/9b00c860-321c-0ebf-f2ac-bb4bbea4eadd.jpeg">

今度は[ S3 ]に移動して、メールの受信を確認します
先ほどのS3コンソールから、mailsのディレクトリに進みましょう
初期で生成されるファイルの他に、暗号化されたファイルが存在するはずです

<img width="937" alt="1-5-8.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/adc21f72-d260-727b-bb47-f6fdc3dabe6e.jpeg">

暗号化されたファイルをダウンロードしましょう

<img width="901" alt="1-5-9.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/40c73d8d-491d-9110-d4b9-d3ed757e5f38.jpeg">

自分はMacPCに最初から入っている[ TextEdit ]を用いました
それぞれお好みのものをお使いください

<img width="152" alt="1-5-10.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/05313001-9132-c647-8d70-c5cb98a6c95d.jpeg">

ファイルの中身を見ると、暗号化されていることがわかります
一番下までスクロールすると以下の画面になります
赤で囲ってある部分が暗号化された本文です。

<img width="643" alt="1-5-11.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/152dd997-2035-7c94-0e02-d788ed297373.jpeg">

暗号が[ base64 ]でエンコードされていると書いてあるので、デコードしましょう
今回はこちらのサイト様を使わせていただきました

https://tool-taro.com/base64_decode/

<img width="1440" alt="1-5-12.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/d64cb141-03df-d37a-732c-1636d96e87f4.jpeg">

表示された指示に従ってURLを新しいタブで開くと下の画面になります
メールアドレスに間違いがないことを確認したら[ 確認 ]をクリックしましょう

<img width="1018" alt="1-5-13.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/67fca3cf-19e8-9f2f-ff0a-e6a26e66805e.jpeg">

あめでとうございます！
これでGmailから送信できるようになりました

<img width="606" alt="1-5-14.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/99391e61-d8ab-5806-eb06-2aac51051166.jpeg">

Gmailの設定を確認してみましょう
確かに新しい送信アドレスが追加されていますね

<img width="1076" alt="1-5-15.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/1e160f16-0f38-6ec3-6551-1afd22958ed8.jpeg">

メールの送信方法は以下の通りです
メールフォームの中に[ From ]の選択肢が増えて、設定したメールアドレスが使えるようになっています！

<img width="599" alt="1-5-16.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/161922/56eae64c-e4ef-db05-a57c-6021fab3c5d9.jpeg">


以上で前半の作業は終了です、お疲れ様でした！



## 中継ぎとして

ここまでお付き合いいただき、ありがとうございました。
今回はここまでを前半とします。

<font color=red>まだこれだけでは他のメールアドレスに送れない状態になっています</font>

その解決や、Gmailで受信する方法など、引き続き書いていきます。

「業界未経験がメールサーバを立てるまで」なんてできたらよかったんですが、
流石に2年も経つと未経験というのも変だったので、自分の立ち位置に迷っているところです。

アドバイスや意見、感想などございましたら連絡をお待ちしております。