Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8862

【AWS】Lambda+Amazon SESでメールを送信する

$
0
0

前回の記事でAmazon SNSを利用してSMSを送信するlambdaを書きました。
今回はメールを送信するためにAmazon SESを利用していきます。

やりたいこと

lambdaからのキックでメールを送信したいと思います。
ただし、宛先のメールアドレスはlambda内で指定したいと思います。

Amazon SMSでもメールの送信は可能ですが、予め作成したサブスクリプションで認証済みのメールアドレス宛にしか送信できません。
そこで今回はAmazon SESを使用します。

Amazon SESって?

システムエンジニアリングサービス…ではなく
Amazon Simple Email Serviceです。

従量課金制のEメール送信サービスです。
2020年5月現在、東京リージョンではサポートされていません。
エンドユーザーへのマーケティングや、ヘルスチェック系の通知などに利用できます。

コードとかより注意しておきたいこと

サンドボックスの解除

Amazon SESで送信元アドレス(ドメイン)を新たに登録すると、最初はサンドボックス環境で動作します。
サンドボックス環境においては送信数の制限があるうえ、
検証済みのメールアドレス宛にしか送信できません(SNSのような状態)。

そのため本番で運用するには制限解除を申請する必要があります。
制限解除は送信数の上限引き上げ、という名目ですが、これによりサンドボックス環境の解除がされるので、
検証済み以外のアドレスにも送りたい、という場合でも制限解除を申請します。

また、制限解除をする場合には、予めバウンス(送信失敗)や苦情(受信者にスパム登録される)への対策を行っておく必要があります。
バウンス率や苦情率が高いとメール送信ができなくなってしまうので、注意しましょう。

登録した送信元アドレス(ドメイン)ごとに、バウンス・苦情の発生時に通知する設定をSES内でできるので、
忘れずにやっておきましょう。

構成

キャプチャ.PNG

Amazon SESに新規アドレス(ドメイン)を登録

Amazon SESコンソールを開きます。
今回はバージニア北部リージョンで利用します。

左のメニューからDomainsまたはEmail Addressesを選択し、
新規の送信元アドレス(ドメイン)を登録します。

今回はメールアドレスの登録をやっていきます。
「Verify a new Email Address」を選択します。↓こんな画面です。
tempsnip.png

「Verify This Email Address」を選択すると、入力したメールアドレス宛に検証メールが届きますので、検証します。

以上です。
「Send a Test Email」からテストメールの送信ができるので一応確認しておきましょう。

また、サンドボックス環境の解除については、lambdaからのテストなどが一通り完了してから行いましょう。
最悪テストでバウンス率が高まってメール停止されるかもしれないので。

lambda関数

単にSESを呼び出して、指定したアドレスにメールを送信するだけのlambdaです。
ランタイムはNode.js 12.xです。

test_SendEmail.js
varaws=require('aws-sdk');// バージニア北部リージョンを選択varses=newaws.SES({region:'us-east-1'});exports.handler=(event,context,callback)=>{// メール送信設定varparams={Destination:{ToAddresses:['送信先メールアドレス']},Message:{Body:{Text:{Data:'メッセージ'}},Subject:{Data:'件名'}},Source:'検証済みの送信元アドレス'};// メール送信ses.sendEmail(params,function(err,data){if(err){console.log(err);context.fail(err);}console.log(data);context.succeed(data));});};

以上!


Viewing all articles
Browse latest Browse all 8862

Trending Articles