Skip to content

Add support for configuration_set_name parameter in SES v2 #11

@marckohlbrugge

Description

@marckohlbrugge

Feature Request

Summary

The aws-actionmailer-ses gem's SES v2 implementation does not support passing configuration_set_name to the AWS SES v2 API, which is needed for event tracking, reputation monitoring, and delivery customization.

Current Behavior

The gem only passes content, from_email_address, and destination parameters to Aws::SESV2::Client#send_email:

# lib/aws/action_mailer/ses_v2/mailer.rb
def deliver!(message)
  params = { content: { raw: { data: message.to_s } } }
  params[:from_email_address] = from_email_address(message)
  params[:destination] = {
    to_addresses: to_addresses(message),
    cc_addresses: message.cc,
    bcc_addresses: message.bcc
  }

  @client.send_email(params)
end

Expected Behavior

The gem should support passing configuration_set_name to enable event tracking, similar to how it supports custom ARN headers.

Proposed Solution

Option 1: Global setting in ses_v2_settings

config.action_mailer.ses_v2_settings = {
  region: 'us-east-1',
  configuration_set_name: 'my-config-set'
}

Option 2: Per-mailer header (though this may not work with SES v2 API)

class MyMailer < ApplicationMailer
  default headers: { 'X-SES-CONFIGURATION-SET' => 'my-config-set' }
end

Option 3: Both
Support both global and per-message configuration sets, with per-message overriding global.

Workaround

Currently, the only workaround is to set a default configuration set on the verified identity in the AWS SES Console, which applies to ALL emails from that domain.

AWS SDK Reference

The AWS SDK for Ruby SESv2 Client supports configuration_set_name as a parameter:

client.send_email({
  configuration_set_name: "ConfigurationSetName",
  # ... other params
})

Use Case

Configuration sets are essential for:

  • Event tracking (bounces, complaints, deliveries, opens, clicks)
  • Reputation monitoring
  • Dedicated IP pool management
  • Custom MAIL FROM domains
  • Different tracking settings per email type (transactional vs marketing)

Impact

Without this feature, users cannot:

  • Track email events per mailer/email type
  • Use different IP pools for different email types
  • Have granular control over email delivery settings

Would appreciate support for this feature! Happy to contribute a PR if there's interest.

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature-requestNew feature or enhancement. May require GitHub community feedback.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions