AWS SDK for Node.jsを使ってSESでメールを飛ばすまで
スポンサーリンク
Nodemailerを使っていたけど、なんか、失敗することが多くなってきたのでSESを使うことにした。その手順をメモ。
1.SES利用登録
- http://aws.amazon.com/ からログイン。
- リージョンをN.Virginiaを選ぶ(2014/05/07時点ではtokyoは無いみたい)。
- コンソールからSESのリンクをクリック
- 左メニュー「SMTP Settings」をクリック
- 「Create My SMTP Credentials」をクリック
- IAM Userをデフォルトのままcreate(これなにに使うかわからん)
- Credential情報をコピー
- 左メニューの「Suppression List Removal」をクリック
- メールアドレス入力し、画像認証後、sendをクリック
- 送信元アドレスの登録。左メニューの「Verified Senders」 > 「Email Addresses」をクリック
- 「Verify new email address」をクリック
- 送信元メールアドレスの存在確認のためアドレスを入力し、送信。
- メールが届くことを確認。
- メール内のリンクをクリック
- コンソール側で「verified」になったことを確認
2.AWS SDK for JavaScript in Node.jsのインストール
npm install aws-sdk
ルートディレクトリに config.jsonファイルを作成し以下の情報を記入。
{ "accessKeyId": "akid", "secretAccessKey": "secret", "region": "user-region" }
node.jsのプログラムを書く。
var AWS = require('aws-sdk'); AWS.config.loadFromPath('./config.json'); var ses = new AWS.SES({apiVersion: '2010-12-01'}); // send to list var to = ['送信先メールアドレス'] // this must relate to a verified SES account var from = '送信元メールアドレス' // this sends the email // @todo - add HTML version ses.sendEmail({ Source : from, Destination : { ToAddresses: to }, Message:{ Subject : { Data: 'This is subject' }, Body: { Text: { Data: 'This is body', } } } } ,function(err, data) { if(err) throw err console.log('Email sent:'); console.log(data); });