Class: Mailkick::Service::Mailgun

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

Constant Summary

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 = {}) ⇒ Mailgun

Returns a new instance of Mailgun.



6
7
8
9
10
11
# File 'lib/mailkick/service/mailgun.rb', line 6

def initialize(options = {})
  require "mailgun"
  mailgun_client = ::Mailgun::Client.new(options[:api_key] || ENV["MAILGUN_API_KEY"])
  domain = options[:domain] || ActionMailer::Base.smtp_settings[:domain]
  @mailgun_events = ::Mailgun::Events.new(mailgun_client, domain)
end

Class Method Details

.discoverable?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/mailkick/service/mailgun.rb', line 29

def self.discoverable?
  !!(defined?(::Mailgun) && ENV["MAILGUN_API_KEY"])
end

Instance Method Details

#bouncesObject



25
26
27
# File 'lib/mailkick/service/mailgun.rb', line 25

def bounces
  fetch(@mailgun_events.get(event: "failed"), "bounce")
end

#opt_outsObject



13
14
15
# File 'lib/mailkick/service/mailgun.rb', line 13

def opt_outs
  unsubscribes + spam_reports + bounces
end

#spam_reportsObject



21
22
23
# File 'lib/mailkick/service/mailgun.rb', line 21

def spam_reports
  fetch(@mailgun_events.get(event: "complained"), "spam")
end

#unsubscribesObject



17
18
19
# File 'lib/mailkick/service/mailgun.rb', line 17

def unsubscribes
  fetch(@mailgun_events.get(event: "unsubscribed"), "unsubscribe")
end