AWSは言わずと知れた、Amazonが提供するクラウドサービスですが、その機能の一つでSESというメールサービスがあります。用途は色いろあると思いますがWebサイトの操作をトリガーとしたメール配信や、メールの一括配信などで使えます。
以下では、Node.jsでSESをを使いHTMLメール(multipart対応)を送信するためのプログラムサンプルを載せています。
以下はAWS Node.js SDKのマニュアルサイトです。主にこちらの情報を見て組む感じです。
Class: AWS.SES — AWS SDK for JavaScript
AWSのコンフィグファイル(conf/aws.json)
{ "accessKeyId": "アクセスキー", "secretAccessKey": "シークレットキー", "region": "us-east-1" }
前提としてAWSのアカウントを持っていることが必要ですが、その際に取得するAWSを使用する際のキーのことです。
(こちらに取得方法の記載があります)
メール機能のmodelファイル(model/mail.js)
このファイルで、メッソドやプロパティを定義します。冒頭にはAWSのSDKを読み込んでいます。
前提としてAWSのモジュールが入っていないといけないので"npm install aws-sdk"でインストールが必要です。
var AWS = require('aws-sdk'); AWS.config.loadFromPath('./conf/aws.json'); //上記のコンフィグファイル読み込み var ses = new AWS.SES({apiVersion: '2010-12-01'}); var Mail = function(data){ //インスタンスプロパティの設定 this.data = data; this.data['from'] = 'fromのメールアドレス'; }; //メール送信メソッド Mail.prototype.sendHTMLMail = function(data,callback){ var to = [this.data['to']]; var text = this.data['text']; var html = this.data['html']; var from = "送信元メールアドレス"; ses.sendEmail({ Source : from, Destination : { ToAddresses: to }, Message:{ Subject : { Data: '件名文章', Charset : 'utf-8' }, Body: { Text: { Data: text, Charset : 'utf-8' }, Html: { Data: html, Charset : 'utf-8' } } } } } module.exports = Mail;
routeのファイル(route/mail.js)
var Mail = require('../model/mail') exports.sendHTMLMail = function(req, res){ //メールを送るための基本情報をセット mail_data = {}; mail_data['to'] = req.session.email; mail_data['text'] = 'テキストメール用のbody"; mail_data['html'] = 'HTMLメール用のbody"; //メール機能のインスタンス作成 var mail = new Mail(mail_data); //メッソドの呼び出し var mail_result = mail.sendHTMLMail(); console.log(mail_result); };
[ご参考]
単純テキストメール版azwoo.hatenablog.com