微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发送电子邮件后如何检查

如何解决发送电子邮件后如何检查

我正在使用AWS的SES服务发送电子邮件

我使用Python和boto3。 (https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ses.html#SES.Client.send_email

我知道如何检查整体统计信息。 (https://aws.amazon.com/ko/premiumsupport/knowledge-center/ses-email-opens-clicks/

但是我不知道如何进行个人询问。 发送电子邮件后,将返回message_idrequest_id。 我认为我们将使用message_idrequest_id进行搜索。 我不知道该怎么办。

解决方法

  1. Configure SES发送通知(发送,传递,退回,打开)到SNS主题。
  2. 编写Lambda函数以收听SNS主题。收到通知后,将事件写入您的表中(我使用DynamoDB)
  3. 现在您将所有电子邮件事件都放在一个表中

这是我用来将SES事件写入DynamoDB的Lambda函数

const tableName = "DEV_EmailAuditLogs";
const AWS = require("aws-sdk");
AWS.config.update({ region: "us-east-1" });
const dynamodb = new AWS.DynamoDB({ apiVersion: "2012-10-08" });

exports.handler = (event,context,callback) => {
  console.log(JSON.stringify(event,null,2));

  console.log("From SNS:",event.Records[0].Sns.Message);
  console.log("Arn Topic:",event.Records[0].Sns.TopicArn);

  const json = event.Records[0].Sns.Message;
  const parsed = JSON.parse(json);

  const type = parsed.eventType;
  const sent = parsed.mail.timestamp.slice(0,-1);
  let to,subject,from;

  const headers = parsed.mail.headers;

  for (const h of headers) {
    switch (h.name) {
      case "To":
        to = h.value;
        break;
      case "From":
        from = h.value;
        break;
      case "Subject":
        subject = h.value;
        break;
    }
  }

  const eventData = parsed[type.toLowerCase()];
  let created;

  if (eventData && eventData.timestamp) {
    created = eventData.timestamp.slice(0,-1);
  } else {
    created = sent;
  }

  var params = {
    TableName: tableName,Item: {
      to: { S: to },from: { S: from },created: { S: created },sent: { S: sent },type: { S: type },version: { N: "1" }
    }
  };
  
  if (subject){
    params.Item.subject = { S: subject };
  }

  dynamodb.putItem(params,function(err,data) {
    if (err) {
      console.log(err);
    } else {
      console.log(data);
    }
  });
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。