Class: Mailkick::Service::Mandrill

Inherits:
Mailkick::Service show all
Defined in:
lib/mailkick/service/mandrill.rb

Constant Summary collapse

REASONS_MAP =
{
  "hard-bounce" => "bounce",
  "soft-bounce" => "bounce",
  "spam" => "spam",
  "unsub" => "unsubscribe"
}

Constants inherited from Mailkick::Service

Sendgrid

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Mailkick::Service

#fetch_opt_outs

Constructor Details

#initialize(options = {}) ⇒ Mandrill

TODO remove ENV



14
15
16
17
18
19
# File 'lib/mailkick/service/mandrill.rb', line 14

def initialize(options = {})
  require "mandrill"
  @mandrill = ::Mandrill::API.new(
    options[:api_key] || ENV["MANDRILL_APIKEY"] || ENV["MANDRILL_API_KEY"]
  )
end

Class Method Details

.discoverable?Boolean

TODO remove ENV

Returns:

  • (Boolean)


33
34
35
# File 'lib/mailkick/service/mandrill.rb', line 33

def self.discoverable?
  !!(defined?(::Mandrill::API) && (ENV["MANDRILL_APIKEY"] || ENV["MANDRILL_API_KEY"]))
end

Instance Method Details

#opt_outsObject

TODO paginate



22
23
24
25
26
27
28
29
30
# File 'lib/mailkick/service/mandrill.rb', line 22

def opt_outs
  @mandrill.rejects.list.map do |record|
    {
      email: record["email"],
      time: ActiveSupport::TimeZone["UTC"].parse(record["created_at"]),
      reason: REASONS_MAP[record["reason"]]
    }
  end
end