存储 SES 交付,将日志退回到 DynamoDB

我使用以下链接将通过 Amazon snS 发送的 Amazon SES 通知存储在 DynamoDB 中

https://aws.amazon.com/premiumsupport/knowledge-center/lambda-sns-ses-dynamodb/

我能够看到表格中生成的字段。

存储 SES 交付,将日志退回到 DynamoDB

以下是 Lambda 函数

--------------------------Lambda Code Begins------------------------
console.log("Loading event");

var aws = require("aws-sdk");
var ddb = new aws.DynamoDB({ params: { TableName: "SEsnotifications" } });

exports.handler = function (event,context,callback) {
  console.log("Received event:",JSON.stringify(event,null,2));

  var snsPublishTime = event.Records[0].sns.Timestamp;
  var snsTopicArn = event.Records[0].sns.TopicArn;
  var SESMessage = event.Records[0].sns.Message;

  SESMessage = JSON.parse(SESMessage);

  var SESMessageType = SESMessage.notificationType;
  var SESMessageId = SESMessage.mail.messageId;
  var SESDestinationAddress = SESMessage.mail.destination.toString();
  var LambdaReceiveTime = new Date().toString();

  if (SESMessageType == "Bounce") {
    var SESreportingMTA = SESMessage.bounce.reportingMTA;
    var SESbounceSummary = JSON.stringify(SESMessage.bounce.bouncedRecipients);
    var itemParams = {
      Item: {
        SESMessageId: { S: SESMessageId },snsPublishTime: { S: snsPublishTime },SESreportingMTA: { S: SESreportingMTA },SESDestinationAddress: { S: SESDestinationAddress },SESbounceSummary: { S: SESbounceSummary },SESMessageType: { S: SESMessageType },},};
    ddb.putItem(itemParams,function (err,data) {
      if (err) {
        callback(err)
      } else {
        console.log(data);
        callback(null,'')
      }
    });
  } else if (SESMessageType == "Delivery") {
    var SESsmtpResponse1 = SESMessage.delivery.smtpResponse;
    var SESreportingMTA1 = SESMessage.delivery.reportingMTA;
    var itemParamsdel = {
      Item: {
        SESMessageId: { S: SESMessageId },SESsmtpResponse: { S: SESsmtpResponse1 },SESreportingMTA: { S: SESreportingMTA1 },};
    ddb.putItem(itemParamsdel,'')
      }
    });
  } else if (SESMessageType == "Complaint") {
    var SESComplaintFeedbackType = SESMessage.complaint.complaintFeedbackType;
    var SESFeedbackId = SESMessage.complaint.feedbackId;
    var itemParamscomp = {
      Item: {
        SESMessageId: { S: SESMessageId },SESComplaintFeedbackType: { S: SESComplaintFeedbackType },SESFeedbackId: { S: SESFeedbackId },};
    ddb.putItem(itemParamscomp,'')
      }
    });
  }
};
------------------------Lambda Code Ends----------------------------

以下是snS通知

{
    "notificationType": "Delivery","mail": {
        "timestamp": "2021-01-01T00:00:00.000Z","source": "test@mydomain.in","sourceArn": "arn:aws:ses:ap-south-1:123456789000:identity/mydomain.in","sourceIp": "123.123.123.123","sendingaccountId": "123456789000","messageId": "1234567890-ap-south-1","destination": [
            "something@hotmail.com","something@gmail.com"
        ],"headersTruncated": false,"headers": [
            {
                "name": "Received","value": "from DELL-Admin-PC"
            },{
                "name": "MIME-Version","value": "1.0"
            },{
                "name": "From","value": "\"SES Test\" <test@mydomain.in>"
            },{
                "name": "To","value": "something@gmail.com,something@hotmail.com"
            },{
                "name": "Date","value": "01 Jan 2021 00:00:00 +0530"
            },{
                "name": "Subject","value": "Test Email from SES"
            },{
                "name": "Content-Type","value": "text/plain; charset=us-ascii"
            },{
                "name": "Content-Transfer-Encoding","value": "quoted-printable"
            }
        ],"commonHeaders": {
            "from": [
                "SES Test <test@mydomain.in>"
            ],"date": "01 Jan 2021 00:00:00 +0530","to": [
                "something@gmail.com","something@hotmail.com"
            ],"subject": "Test Email from SES"
        }
    },"delivery": {
        "timestamp": "2021-01-01T00:00:00.000Z","processingTimeMillis": 1534,"recipients": [
            "something@gmail.com"
        ],"smtpResponse": "250 2.0.0 OK  1234567890 f11si2056653pgr.168 - gsmtp","remoteMtaIp": "74.125.24.27","reportingMTA": "c123-123.smtp-out.ap-south-1.amazonses.com"
    }
}

请指导我如何在表格中捕获自、主题和日期。

wwjazrael 回答:存储 SES 交付,将日志退回到 DynamoDB

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/14659.html

大家都在问