Edited at

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

後編はこちら

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


経緯

2017年1月でIT業界に入ってから2年が経ち、今までの手探りで

解決できてこなかったところを解決しようと思い至りました。


経歴


  1. [航空機専門商社で社長秘書]

  2. [鉱山で発破屋]

  3. [アメリカで飲食起業]


  4. [日本でIT起業] <-(イマココ)

IT業界は2017年1月、プログラミングスクールに通ったのが最初で知識はほぼゼロ。

ネットサーフィンでHTMLとかを聞いたことがある程度。

就職して経験を積むというプロセスなしにそのまま友人と起業してCTO()を名乗る。

Rubyなどの言語が全く身につかず嫌いになり、AWSやインフラに愛しさを覚える。

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


注意!!!

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


やりたかったこと


要望:


  • 会社HPにコンタクトフォームをつける

  • メールを会社ドメインで送るべ

  • スタートアップだしお金かけたくないよ


自分のレベル:


  • 会社ページは[ S3 ]で作っていたから、サーバいじれなくね?

  • メールってそもそもどうやって使えるようになるん?

  • 調べたけど、自分でメールサーバ立てたら絶対管理できん!!

  • そもそもメールサーバわけわかんね...


失敗の積み重ね


SendGridいいよ?

=> 送るはできたけど、結局受信ってどうやるん?

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


Postfixやったれ!

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

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


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


今回やったこと

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

前提条件:

Route53に使用するドメインの設定がされていること

作業内容:

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

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

#後編


  1. SESの送信制限の解除


    1. 現状の確認

    2. サポートから内容を申請



  2. SESで受信した内容をGmailに転送する


1. AWSでSESの設定をする

SESとは...

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

AWSが提供しているマネージドサービス(サーバの管理はAWSがやってくれるサービス)の1つで、

メールサーバを貸してくれる。そんな感じ。

メリット:


  • 管理しなくていい

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

デメリット:


  • 日本のキャリアメール(docomo, au, softbankなど)には向かない

  • 日本リージョンにはないので、海外のリージョンを使うことになる

今回はオレゴンリージョンを使います。


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

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

1-1-1.jpg

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

1-1-2.jpg

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

1-1-3.jpg

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

1-1-4.jpg

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

1-1-6.jpg

Congratulations!!

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

1-1-7.jpg


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

今度は使用するドメインの設定を行います

サイドバー[ Domains ]から[ Verify a New Domain ]をクリックします

1-2-1.jpg

使用する[ Route53 ]に設定済みのドメインを記入し、

下にある[ Generate DKIM Settings ]のチェックを入れてから

[Verify This Domain]をクリックします。

1-2-2.jpg

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

1-2-3.jpg

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

1-2-4.jpg

各所項目からどれを[ Route53 ]に設定するか選びます

今回は受信も行うので、全てのチェックボックスをオンにします

1-2-5.jpg

最後にドメインが表示され、全ての項目が緑色になれば完了です

1-2-6.jpg

1-2-7.jpg


1-3: IAMユーザ作成

引き続き[ SES ]のコンソール画面です

サイドバー[ SMTP Settings ]から[ Create My SMTP Credentials ]をクリックします

1-3-1.jpg

画面が自動で遷移し、ユーザ名が自動で生成されます

ここはご自身でお好きに変えてください

[ 作成 ]をクリックします

1-3-2.png

作成を押すと[ 認証情報のダウンロード ]という部分をクリックし、ファイルをダウンロードしましょう

ブラウザはFirefoxなのでダウンロードの表示がありますが、Chromeでは勝手に保存されます

1-3-3.jpg

終わったら[ SES ]の画面に戻りましょう

再びサイドバー[ SMTP Settings ]を押すと、SMTPの設定項目があるのでメモしておきましょう

1-3-4.jpg


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

メールの使用には、メールを一旦受信して確認する作業が必要なので、受信の設定を行います

サイドバー[ Rule Sets ]から[ Create a Receipt Rule]をクリック

1-4-1.jpg

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

1-4-2.jpg

1-4-3.jpg

次の[ Actions ] の項目で、受信先の設定を行います

[ Select an action type ]から[ S3 ]をクリックします

1-4-4.jpg

SESのメール受信用のバケットを作成します

[ S3 bucket ]から[ Create S3 bucket ]をクリックします

1-4-5.jpg

バケット名を入力し[ Create Bucket ]をクリックします

この時、バケット名は世界で一つだけのもの(一意)である必要があります

1-4-6.jpg

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

1-4-7.jpg

最後に受信ルールの名前を設定して完了です

ここは基本的に弄らなくて大丈夫です

1-4-8.jpg

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

1-4-9.jpg

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

1-4-10.jpg

最後にバケットが作成されたことを確認します

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

1-4-11.jpg

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

1-4-12.jpg

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

1-4-13.jpg


1-5. Gmailでの送信設定

今度はGmailに移動します

1-5-1.jpg

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

1-5-2.jpg

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

1-5-3.jpg

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

e.g.


名前: nago3

メールアドレス: nago3@hogehoge.com


1-5-4.jpg

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

1-5-5.jpg

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

1-5-6.jpg

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

1-5-7.jpg

今度は[ S3 ]に移動して、メールの受信を確認します

先ほどのS3コンソールから、mailsのディレクトリに進みましょう

初期で生成されるファイルの他に、暗号化されたファイルが存在するはずです

1-5-8.jpg

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

1-5-9.jpg

自分はMacPCに最初から入っている[ TextEdit ]を用いました

それぞれお好みのものをお使いください

1-5-10.jpg

ファイルの中身を見ると、暗号化されていることがわかります

一番下までスクロールすると以下の画面になります

赤で囲ってある部分が暗号化された本文です。

1-5-11.jpg

暗号が[ base64 ]でエンコードされていると書いてあるので、デコードしましょう

今回はこちらのサイト様を使わせていただきました

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

1-5-12.jpg

表示された指示に従ってURLを新しいタブで開くと下の画面になります

メールアドレスに間違いがないことを確認したら[ 確認 ]をクリックしましょう

1-5-13.jpg

あめでとうございます!

これでGmailから送信できるようになりました

1-5-14.jpg

Gmailの設定を確認してみましょう

確かに新しい送信アドレスが追加されていますね

1-5-15.jpg

メールの送信方法は以下の通りです

メールフォームの中に[ From ]の選択肢が増えて、設定したメールアドレスが使えるようになっています!

1-5-16.jpg

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


中継ぎとして

ここまでお付き合いいただき、ありがとうございました。

今回はここまでを前半とします。

まだこれだけでは他のメールアドレスに送れない状態になっています

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

「業界未経験がメールサーバを立てるまで」なんてできたらよかったんですが、

流石に2年も経つと未経験というのも変だったので、自分の立ち位置に迷っているところです。

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