AWS Simple Email Service Notification Object Definitions for C#

Dan Gardner
ProcessBolt
Published in
2 min readDec 1, 2018

Not too long ago, we set out to improve the ProcessBolt platform by taking advantage of the features that come along with Amazon’s Simple Email Service (SES). In particular, being able let our users know if something goes wrong with a system-generated email message. To make a long story short, you can configure SES to put event notifications into a Simple Queuing Service (SQS) queue, where you can be notified when messages are delivered, bounced, etc.

Amazon (AWS) offers a similar event notification service for the S3 service (e.g. notification in a queue when an S3 object is created). The .NET AWSSDK for S3 happens to include the object definitions for the notifications that end up in the queue, making it very easy to de-serialize the notifications’ JSON into application objects that you can then do with what you will.

When we started working with the SES events, we thought there must be similar object definitions for the event notifications in the .NET AWSSDK for SES. We were wrong. At that point we had to start figuring out these object definitions for ourselves.

To make a long story short, we were able to stitch together the structure of the SES JSON objects using various references we found combined with some educated guesses and observation.

We have decided to open source our C# version of the SES notification object definitions in the hopes that they can be helpful to somebody else. These are the definitions we wish we had when we started working with SES events.

We have definitions for the following SES events:

  • Send
  • Delivery
  • Open
  • Bounce
  • Click
  • Complaint
  • Rejected
  • Rendering Failure

The code is available on Gitub: https://github.com/ProcessBolt/AwsSesEvents

Enjoy!!

--

--