LoginSignup
3
0

More than 1 year has passed since last update.

amazonSESのはじめの一歩

Last updated at Posted at 2021-01-07

はじめに

前回に引き続き、メール機能について学習したのでアウトプットしていきます 今回はAmazon SESを使っていきます Amazon SESを使う前提として
(AWSアカウントをすでに作成済みの方はOKです!)
>- アカウントの詳細を入力

が必要になってきます。

メール送信

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など様々な言語に対応したものが用意されています)

セキュリティのベストプラクティスについては、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ロール](https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html)を使って行うらしいのですが、よくわからないので別の方法で! クレデンシャル(~/.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

届きました。

メール機能を運用していくにあたって

現状では不正使用や悪用を防止し、送信者としての評判を保つため、新しい Amazon SES アカウントには制限が適用されます。そのため、下記の制限があります。
  • 最大で 24 時間あたり 200 メッセージ
  • E メールは、検証済み E メールアドレスまたはドメインからのみ送信

制限解除にはサンドボックスに配置されている Amazon SESをサンドボックスの外に置く必要があります。

おまけ

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0