Class: SesMachine::Mailer

Inherits:
Object
  • Object
show all
Defined in:
lib/ses_machine/mailer.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Mailer

Returns a new instance of Mailer.



7
# File 'lib/ses_machine/mailer.rb', line 7

def initialize(*args); end

Instance Method Details

#perform_delivery_ses_machine(mail) ⇒ Object Also known as: deliver!



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ses_machine/mailer.rb', line 9

def perform_delivery_ses_machine(mail)
  raw_source = SesMachine.use_dkim? ? sign_mail(mail) : mail.encoded

  begin
    response = SesMachine.ses.send_raw_email(raw_source, :source => SesMachine.)
  rescue AWS::SES::ResponseError => e
    response = e.response
  end

  doc = {
    :address => mail.to,
    :subject => mail.subject,
    :raw_source => raw_source,
    :date => response.headers['date'].to_time.utc,
    :request_id => response.request_id,
    :response => response.to_s,
    :response_code => response.code,
    :response_error => response.error.to_s,
    :bounce_type => response.error? ? SesMachine::Bounce::TYPES[:unknown] : 0,
    '_keywords' => SesMachine::DB.get_keywords([mail.to].flatten + mail.subject.split)
  }

  doc.merge!(:message_id => response.message_id) unless response.error?

  SesMachine.database['mails'].insert(doc)
end