class MailHandler::SES::Mailer

Yields an interface to SES

Public Class Methods

new(config) click to toggle source
# File lib/interfaces/ses.rb, line 17
def initialize(config)
  @ses = ::AWS::SES::Base.new(
    access_key_id:     config[:access_key_id],
    secret_access_key: config[:secret_access_key],
    server:            config[:ses_server]
  )
  check_connection
end

Public Instance Methods

send_mail(email) click to toggle source
# File lib/interfaces/ses.rb, line 26
def send_mail(email)
  response = @ses.send_email email.to_h
  log email, response
  response
rescue StandardError => e
  puts e.to_s
end

Private Instance Methods

check_connection() click to toggle source
# File lib/interfaces/ses.rb, line 62
def check_connection
  @ses.quota
end
log(email, response) click to toggle source
# File lib/interfaces/ses.rb, line 36
def log(email, response)
  if response
    if response.error?
      log_failure email, response
    else
      log_success email
    end
  end
end
log_failure(email, response) click to toggle source
# File lib/interfaces/ses.rb, line 46
def log_failure(email, response)
  Logger.error(
    subject:    email,
    error_code: response.code,
    error_type: 'SES ERROR',
    trace:      response.error.to_s
  )
end
log_success(email) click to toggle source
# File lib/interfaces/ses.rb, line 55
def log_success(email)
  Logger.success(
    subject: email,
    message: 'successfully sent'
  )
end