Rails and Rack integration for Mailgun Webhooks.
Ruby JavaScript CSS
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.rvmrc
Gemfile
MIT-LICENSE
README.md
Rakefile
mailgun_webhooks.gemspec

README.md

Mailgun Webhooks

Code Climate

Add support for acting on Mailgun webhooks to your Rack or Rails application.

Rails Installation

Add gem 'mailgun_webhooks' to your Gemfile.

Setup config/initializers/mailgun.rb

MailgunWebhooks.api_key = "yourapikeyfrommailgun"
MailgunWebhooks.api_host = "yourdomain.com"

Rack Installation

If you wish to use MailgunWebhooks outside of Rails, you can leverage the same middleware used to provide Rails integration. Just add MailgunWebhooks::Rack to your middleware stack.

use MailgunWebhooks::Rack

Webhooks

By default your application will listen for webhook payloads on /mailgun. You can change this by setting MailgunWebhooks.endpoint.

MailgunWebhooks.endpoint = '/mailgun_webhooks'

In order to customize how your application reacts to webhooks you can define the behavior using Mailgun.on.

MailgunWebhooks.on(:bounced) do |data|
  # Do something with the incoming data. Check the documentation for details:
  # http://documentation.mailgun.net/user_manual.html#events-webhooks

  if (user = User.find_by_email(data['recipient'])
    user.update_attribute(:email_bounced_at, Time.now)
  end
end

NOTE It is important to recognize that the hash passed to the block is just a Hash and not a HashWithIndifferentAccess so you have to access the keys as strings, not symbols.