1 Answer
- Newest
- Most votes
- Most comments
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
}
}
}
}
}
Relevant content
- asked a year ago
- asked 5 years ago
- AWS OFFICIALUpdated 8 months ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated 7 days ago
- AWS OFFICIALUpdated a year ago
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).