Class: Aws::ActionMailer::SESV2::Mailer

Inherits:
Object
  • Object
show all
Defined in:
lib/aws/action_mailer/ses_v2/mailer.rb

Overview

Provides a delivery method for ActionMailer that uses Amazon Simple Email Service V2.

Delivery settings are used to construct a new Aws::SESV2::Client instance. Once you have a delivery method, you can configure your Rails environment to use it:

config.action_mailer.delivery_method = :ses_v2
config.action_mailer.ses_v2_settings = { region: 'us-west-2' }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings = {}) ⇒ Mailer

Returns a new instance of Mailer.

Parameters:



22
23
24
25
26
# File 'lib/aws/action_mailer/ses_v2/mailer.rb', line 22

def initialize(settings = {})
  @settings = settings
  @client = Aws::SESV2::Client.new(settings)
  @client.config.user_agent_frameworks << 'aws-actionmailer-ses'
end

Instance Attribute Details

#settingsObject (readonly)

Returns the value of attribute settings.



18
19
20
# File 'lib/aws/action_mailer/ses_v2/mailer.rb', line 18

def settings
  @settings
end

Instance Method Details

#deliver!(message) ⇒ Object

Delivers a Mail::Message object. Called during mail delivery.



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/aws/action_mailer/ses_v2/mailer.rb', line 29

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).tap do |response|
    message.header[:ses_message_id] = response.message_id
  end
end