class Mailkick::Service::AwsSes

Constants

REASONS_MAP

Public Class Methods

discoverable?() click to toggle source
# File lib/mailkick/service/aws_ses.rb, line 36
def self.discoverable?
  !!defined?(::Aws::SESV2::Client)
end
new(options = {}) click to toggle source
# File lib/mailkick/service/aws_ses.rb, line 11
def initialize(options = {})
  @options = options
end

Public Instance Methods

opt_outs() click to toggle source
# File lib/mailkick/service/aws_ses.rb, line 15
def opt_outs
  response = client.list_suppressed_destinations({
    reasons: ["BOUNCE", "COMPLAINT"],
    # TODO make configurable
    start_date: Time.now - (86400 * 365),
    end_date: Time.now
  })

  opt_outs = []
  response.each do |page|
    page.suppressed_destination_summaries.each do |record|
      opt_outs << {
        email: record.email_address,
        time: record.last_update_time,
        reason: REASONS_MAP[record.reason]
      }
    end
  end
  opt_outs
end

Private Instance Methods

client() click to toggle source
# File lib/mailkick/service/aws_ses.rb, line 42
def client
  @client ||= ::Aws::SESV2::Client.new
end