logo

Setting up Amazon SES email bounce logging

So many different options

Joel Clermont
Joel Clermont
2025-10-23

The thing I love about AWS is the incredible flexibility it offers. But sometimes that flexibility can be overwhelming and downright confusing.

For example, they offer Simple Email Service (SES) for sending emails.

An extremely common thing to want with email delivery is a way to track and log bounces.

SES gives you an easy way to track metrics, but not the details of the which specific messages bounced or why. Instead, you're presented with a set of different lego blocks that can be combined in different ways to log bounces.

For example, you can publish notifications to SNS for specific bounce events, but then you need something to listen to and respond to those notifications. That would involve writing code or spinning up a Lambda service.

SES also publishes events, and one of the default event consumers is CloudWatch, but that also will just track aggregate metrics, not individual message details.

The solution I landed on was to use SES events directed at another AWS service called EventBridge.

At first, this looked like overkill for what I wanted, but it was actually pretty straightforward to set up.

After pointing these SES events at the default EventBridge bus, I created a rule called ses-events and supplied this custom event pattern:

{
  "source": ["aws.ses"],
  "detail-type": ["Email Bounced", "Email Complaint Received"]
}

You could adjust this pattern to include other event types as needed.

The rule target was a CloudWatch log group also called ses-events.

With those few things in place, now every time a bounce happens, I get a detailed log entry in CloudWatch with all the information about the bounce.

Here to help,

Joel

P.S. The Mastering Laravel community is a great place to get advice from other Laravel developers if you're ever facing a confusing set of options like this.

Toss a coin in the jar if you found this helpful.
Want a tip like this in your inbox every weekday? Sign up below 👇🏼
email
No spam. Only real-world advice you can use.