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' }

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/mailer.rb', line 22

def initialize(settings = {})
  @settings = settings
  @client = Aws::SES::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/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
# File 'lib/aws/action_mailer/ses/mailer.rb', line 29

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