Notification for email delivery status from Pinpoint Email or in SES

0

We are using pinpoint email for sending emails .Are there any way to know whether the email is delivered or not ? If the email is not delivered, does Pinpoint provide any way to identify this by sending some notifications for us to listen and act up on.

Are there any workaround for doing this ?

If pinpoint is not providing this functionality, does SES have this feature ?

1개 답변
0

Both Amazon SES and Amazon Pinpoint provide the functionality that you need. With Pinpoint, you need to enable event streaming. When you do that, you'll receive event notifications when emails are sent, delivered, clicked, bounced, etc. The delivery events will resemble the following example:

{
  "event_type": "_email.delivered",
  "event_timestamp": 1564618621380,
  "arrival_timestamp": 1564618622690,
  "event_version": "3.1",
  "application": {
    "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
    "sdk": {}
  },
  "client": {
    "client_id": "e9a3000d-daa2-40dc-ac47-1cd34example"
  },
  "device": {
    "platform": {}
  },
  "session": {},
  "attributes": {
    "feedback": "delivered"
  },
  "awsAccountId": "123456789012",
  "facets": {
    "email_channel": {
      "mail_event": {
        "mail": {
          "message_id": "0200000073rnbmd1-mbvdg3uo-q8ia-m3ku-ibd3-ms77kexample-000000",
          "message_send_timestamp": 1564618621380,
          "from_address": "sender@example.com",
          "destination": ["recipient@example.com"],
          "headers_truncated": false,
          "headers": [{
            "name": "From",
            "value": "sender@example.com"
          }, {
            "name": "To",
            "value": "recipient@example.com"
          }, {
            "name": "Subject",
            "value": "Amazon Pinpoint Test"
          }, {
            "name": "MIME-Version",
            "value": "1.0"
          }, {
            "name": "Content-Type",
            "value": "multipart/alternative;  boundary=\"----=_Part_314159_271828\""
          }],
          "common_headers": {
            "from": "sender@example.com",
            "to": ["recipient@example.com"],
            "subject": "Amazon Pinpoint Test"
          }
        },
        "delivery": {
          "smtp_response": "250 ok:  Message 82080542 accepted",
          "reporting_mta": "a8-53.smtp-out.amazonses.com",
          "recipients": ["recipient@example.com"],
          "processing_time_millis": 1310
        }
      }
    }
  }
}
전문가
답변함 일 년 전
  • I think Enabling event stream will create kinesis streams. It will be bit costly I guess. (please correct me if i am wrong) Are there any other alternative cost effective solution ?

  • I think Enabling event stream will create kinesis streams. It will be bit costly I guess. (please correct me if i am wrong) Are there any other alternative cost effective solution ?

    You can use Kinesis Data Firehose to stream this data. In my opinion, this is a cost-effective option.

    The sample event record I showed in my previous post is about 2KB. Let's assume you send 1 million messages every day for a month, and each message generates three event records (send, delivery, open). That would be 180GB of data over the course of one month. The cost for Kinesis Data Firehose streaming is USD$0.029 per GB. Your total charge for streaming this data would be $5.22 per month. If you stored the data in S3, that would be an additional $4.14 per month ($0.023 * 180GB).

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인