Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@shimizuyuta

メール機能ってどうやるの?amazonSES編

はじめに

前回に引き続き、メール機能について学習したのでアウトプットしていきます
今回はAmazon SESを使っていきます
Amazon SESを使う前提として

  • AWS にサインアップ

    (AWSアカウントをすでに作成済みの方はOKです!)
  • E メールアドレスまたはドメインの確認(ID検証)

    Amazon SES の使用を開始した時点では、E メールを送受信するためには、Amazon SES メールボックスシミュレーターと検証済み E メール ID のみであるためです。
    今回はEメールアドレス検証を行っていきます。(ドメインの場合も同様)
    image.png
    Email Addressesを選択し、Verify a new Email Address からメールアドレスの検証を行ってください。
    image.png

  • アカウントの詳細を入力

が必要になってきます。

メール送信

Amazon SES では、

  • Amazon SES コンソール
  • Simple Mail Transfer Protocol (SMTP)インターフェイス
  • Amazon SES API

など、E メールを送信するためのいくつかの方法を利用できます。

この中でAmazon SES APIを使ってみます

Amazon SES API

Amazon SES APIを用いることで以下のことができます。

  • Amazon SES クエリ API を HTTPS 経由で直接呼び出し(ムズイらしい)
  • AWS Command Line Interfaceの使用
  • AWS Tools for Windows PowerShellの使用
  • AWS SDK の使用

aws初心者の私は一番簡単にできそうなAWS SDKを使っていきます!
AWS SDKは Amazon SESオペレーションだけでなく、基本的な AWS 機能 (リクエスト認証、リクエストの再試行、エラー処理など) も提供します。

AWS SDK 経由でAmazon SES API

Node.js 内の AWS SDK for JavaScriptを使用します!(SDKにはPythonやjava,PHPなど様々な言語に対応したものが用意されています)

image.png

セキュリティのベストプラクティスについては、AWS アカウントのアクセスキーではなくIAM ユーザーのアクセスキーを使用します。
AWS アカウントの認証情報によってすべての AWS リソースへのフルアクセス権を付与するため、この認証情報は安全な場所に保存しておき、AWS の日々の操作には IAM ユーザーの認証情報を使用するらしいです。

では早速、AWS アクセスキーを作成していきましょう!
awsのベストプラクティスでは、AWS アクセスキーの作成手順として以下のように紹介されています。

1: IAM ユーザーを作成し、そのユーザーのアクセス許可を可能な限り狭く定義します。
2: その IAM ユーザーにアクセスキーを作成します。

image.png

AWS アクセスキーは、アクセスキー ID とシークレットアクセスキーで構成されます。

SESの環境を構築

sdkをインストールします

npm install aws-sdk --save

aws-sdkで接続情報の設定

基本的にはIAMロールを使って行うらしいのですが、よくわからないので別の方法で!
クレデンシャル(~/.aws/credentials)もよく使われるらしいですが、今回はenvに設定しました~

dotenv モジュールのインストール

$ npm install dotenv

ルートフォルダーに.envファイルを作り記述します。

.env
aws_access_key_id = アクセスキー
aws_secret_access_key = シークレットアクセスキー

最後にmail.jsをルートフォルダーに作り、最も簡単なE メールテンプレートの作成をします。

image.png

node mail.js

を実行すれば…

image.png

届きましたね。

おまけ

awsを使うにあたり調べた用語を紹介します

ロール

特定のアクセス権限を持ち、アカウントで作成できる IAM アイデンティティです。IAM ロールは、IAM ユーザーといくつかの類似点を持っています。ロールとユーザーは、両方とも、ID が AWS でできることとできないことを決定するアクセス許可ポリシーを持つ AWS ID です。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
shimizuyuta
大学2年生です Ruby on rails,Node.jsを触っています!

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?