SESを利用して、Node.jsのアプリからメール送信してみます。
目次
準備|メールアドレスの検証
送信元ドメイン
または 送信元メールアドレス
の検証が必要です。今回は、送信元メールアドレス
の検証を行います。
![](http://www.wakuwakubank.com/wp-content/uploads/698-aws-ses_1.png)
SESを利用できるリージョンの中から、
今回は、オレゴンを選択しました。
![](http://www.wakuwakubank.com/wp-content/uploads/698-aws-ses_2.png)
Verify a New Email Address
をクリックします。
![](http://www.wakuwakubank.com/wp-content/uploads/698-aws-ses_3.png)
利用したいメールアドレスを入力します。
![](http://www.wakuwakubank.com/wp-content/uploads/698-aws-ses_4.png)
入力したメールアドレス宛てに確認メールが送信されます。確認メールのリンクをクリックすることで検証済みとなります。
![](http://www.wakuwakubank.com/wp-content/uploads/698-aws-ses_5.png)
Statusがverified
になっていれば検証済みです。
Node.jsでメール送信
パッケージインストール
npm install aws-sdk dotenv --save
.env
.env
に SESの権限を持ったIAMユーザーのAWSクレデンシャル
と 検証したメールアドレス
を設定します。
ACCESS_KEY_ID = "XXXXXXXXXXXXXXXXXXXXXX"
SECRET_ACCESS_KEY = "YYYYYYYYYYYYYYYYYYYYY"
ADMIN_EMAIL = "xxxxxxxxx@yyyyyyyyyy"
app.js
require('dotenv').config()
const AWS = require('aws-sdk')
const config = {
accessKeyId: process.env.ACCESS_KEY_ID,
secretAccessKey: process.env.SECRET_ACCESS_KEY,
region: 'us-west-2'
}
const ses = new AWS.SES(config)
const address = process.env.ADMIN_EMAIL
const params = {
// From
Source: address,
// To
Destination: {
ToAddresses: [
address,
]
},
Message: {
Subject: {
Data: 'SES Test'
},
Body: {
Html: {
Charset: 'UTF-8',
Data: '<h3>This is SES test.</h3>'
}
}
}
}
ses.sendEmail(params, (err, data) => {
err ? console.log(err, err.stack) : console.log(data)
})
![](http://www.wakuwakubank.com/wp-content/uploads/698-aws-ses_request_1.png)
SESは、申請しないとSandBox上でしか利用できなく、検証済みメールアドレス・ドメインにしかメール送信できません。コンソール上でも画像のように、SandBox上で利用中であることが確認できます。
そのため、今回は送信先にも先ほど検証したメールアドレスを指定しています。
実行結果
$ node app.js
{ ResponseMetadata: { RequestId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' },
MessageId: 'xxxxxxxxxxxxxxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxx' }
![](http://www.wakuwakubank.com/wp-content/uploads/698-aws-ses_result.png)
無事メール送信できました。