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

SendGridV2

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Mailkick::Service

#fetch_opt_outs

Constructor Details

#initialize(api_key: nil) ⇒ Mandrill

Returns a new instance of Mandrill.



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

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

Class Method Details

.discoverable?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/mailkick/service/mandrill.rb', line 31

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

Instance Method Details

#opt_outsObject

TODO paginate



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

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