AWSのsdk for node.js を使って、Node.js から AWS の SES でメール送る時の備忘録です。
AWSのSESにアクセスします。
今のところSESは東京リージョンでは使えないので、リージョンはバージニア北部で。
https://console.aws.amazon.com/ses/home?region=us-east-1
送信者のメアドを認証します。
リンクをクリックしてSMTPユーザを作成します。
デフォルトではSendRawEmailポリシー しかアタッチされていないので、SendEmailポリシーを作成しアタッチします。作成したSTMPユーザに認証情報ページから[ユーザーポリシーの作成] – [Policy Generator] で作っていきます。
最終的に出来たポリシーはこれ。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "xxxxxxxxxxx", "Effect": "Allow", "Action": [ "ses:SendEmail" ], "Resource": [ "*" ] } ] }
あと 最初に作られるSMTP ユーザー名とSMTP パスワードでは送れません。
Create Access Key アクセスキーを新たに作成して Credentioals.json に書いておきます。
{ "accessKeyId": "xxxxxxxxxxxxxxxxxx", "secretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "region": "us-east-1" }
npm i -S aws-sdk して node から送るコードを書きます。
細かい所はドキュメントで確認します。
Class: AWS.SES — AWS SDK for JavaScript
var AWS = require('aws-sdk'); AWS.config.loadFromPath('./config/credentials.json'); var ses = new AWS.SES({apiVersion: '2010-12-01'}); var params = { Source: '認証した送信者のメアド', Destination: { ToAddresses: ['mail@to'] }, Message: { Subject: { Data: 'subject' }, Body: { Text: { Data: 'body' } } } }; ses.sendEmail(params, function (err, data) { if (err) { // handle error } else { // do something } });
こんな感じです。