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