Sha256: ee71a7e6e670180084251a19c4f355f65e67bb43f15e352f710a62c2e2664cac

Contents?: true

Size: 861 Bytes

Versions: 3

Compression:

Stored size: 861 Bytes

Contents

# https://mandrillapp.com/api/docs/index.ruby.html

module Mailkick
  class Service
    class Mandrill < Mailkick::Service
      REASONS_MAP = {
        "hard-bounce" => "bounce",
        "soft-bounce" => "bounce",
        "spam" => "spam",
        "unsub" => "unsubscribe"
      }

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

      # TODO paginate
      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

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mailkick-0.1.4 lib/mailkick/service/mandrill.rb
mailkick-0.1.3 lib/mailkick/service/mandrill.rb
mailkick-0.1.2 lib/mailkick/service/mandrill.rb