193 文字
1 分
SES -> SNS -> SQS -> Lambda -> DynamoDB
2018-11-26

概要#

  • AWS SESを使いだすのは簡単ですが、エラーメールや、クレーム、バウンスなどを適切に処理しないとSES上のエラーレートが上がってしまうので対策をする設定です。
  • このあたりを参考にしながら

以下は、スクリーンショットをメインに適当にメモ書きです

const AWS = require('aws-sdk');
const documentClient = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event, context, callback) => {
const tableName = 'ses_complaint';
// event["Records"][0]["ses"]["mail"]["commonHeaders"]["messageId"];
var message_id = (new Date).getTime().toString();
Object.assign(event, { id: message_id });
var params = {
TableName: tableName,
Item: event
};
await documentClient.put(params).promise();
};
Terminal window
$ aws --profile minedia --region us-east-1 ses send-email \
--to complaint@simulator.amazonses.com --from mymailaddress@minedia.com \
--subject "complaint" \
--text "ses mail complaint body"
$ aws --profile minedia --region us-east-1 ses send-email \
--to bounce@simulator.amazonses.com --from mymailaddress@minedia.com \
--subject "bounce" \
--text "ses mail bounce body"
$ aws --profile minedia --region us-east-1 ses send-email \
--to success@simulator.amazonses.com --from mymailaddress@minedia.com \
--subject "success" \
--text "ses mail bounce body"
SES -> SNS -> SQS -> Lambda -> DynamoDB
https://blog.teraren.com/posts/ses-sns-sqs-lambda-dynamodb/
作者
Yuki Matsukura
公開日
2018-11-26
ライセンス
CC BY-NC-SA 4.0

コメント