Class: Aws::ActionMailer::SES::Mailer

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

Overview

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

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

config.action_mailer.delivery_method = :ses
config.action_mailer.ses_settings = { region: 'us-west-2' }

Alternatively, you could pass the client itself.

The passed in client will be prioritized regardless of other ‘:ses_settings` given.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings = {}) ⇒ Mailer

Returns a new instance of Mailer.

Parameters:



29
30
31
32
33
34
35
# File 'lib/aws/action_mailer/ses/mailer.rb', line 29

def initialize(settings = {})
  @settings = settings
  client_settings = settings.dup
  @client = client_settings.delete(:ses_client) || Aws::SES::Client.new(client_settings)

  update_user_agent
end

Instance Attribute Details

#settingsObject (readonly)

Returns the value of attribute settings.



22
23
24
# File 'lib/aws/action_mailer/ses/mailer.rb', line 22

def settings
  @settings
end

Instance Method Details

#deliver!(message) ⇒ Object

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



38
39
40
41
42
43
44
45
46
47
# File 'lib/aws/action_mailer/ses/mailer.rb', line 38

def deliver!(message)
  params = {
    raw_message: { data: message.to_s },
    source: message.smtp_envelope_from, # defaults to From header
    destinations: message.smtp_envelope_to # defaults to destinations (To,Cc,Bcc)
  }
  @client.send_raw_email(params).tap do |response|
    message.header[:ses_message_id] = response.message_id
  end
end