Sha256: 8836e0a576e919f64a3e245e8b8b22e7b29a0a3ca40d952ab0543c11c2775eb3

Contents?: true

Size: 1.37 KB

Versions: 7

Compression:

Stored size: 1.37 KB

Contents

gem 'mandrill-api', '~> 1.0.53'
require 'mandrill'

module MnoEnterprise
  module MailAdapters
    class MandrillAdapter < Adapter
      class << self
        # Return a mandrill client configured with the right API key
        def client
          @client ||= Mandrill::API.new(ENV['MANDRILL_API_KEY'] || MnoEnterprise.mandrill_key)
        end

        # Send a template
        # @see Adapter#deliver
        def deliver(template, from, to, vars={}, opts={})
          # Prepare message from args
          message = { from_name: from[:name], from_email: from[:email]}
          message[:to] = [to].flatten.map { |t| {name: t[:name], email: t[:email], type: (t[:type] || :to) } }

          # Sanitize merge vars
          full_sanitizer = Rails::Html::FullSanitizer.new
          message[:global_merge_vars] = vars.map { |k,v| {name: k.to_s, content: full_sanitizer.sanitize(v)} }

          # Merge additional mandrill options
          message.merge!(opts)

          self.send_template(template,[],message)
        end

        # Send the provided template with options
        # MandrillClient.send_template(template_name(string), template_content(array), message(hash))
        def send_template(*args)
          if self.test?
            self.base_deliveries.push(args)
          else
            self.client.messages.send_template(*args)
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mno-enterprise-core-3.4.0 lib/mno_enterprise/mail_adapters/mandrill_adapter.rb
mno-enterprise-core-3.3.3 lib/mno_enterprise/mail_adapters/mandrill_adapter.rb
mno-enterprise-core-3.3.2 lib/mno_enterprise/mail_adapters/mandrill_adapter.rb
mno-enterprise-core-3.2.1 lib/mno_enterprise/mail_adapters/mandrill_adapter.rb
mno-enterprise-core-3.3.1 lib/mno_enterprise/mail_adapters/mandrill_adapter.rb
mno-enterprise-core-3.3.0 lib/mno_enterprise/mail_adapters/mandrill_adapter.rb
mno-enterprise-core-3.2.0 lib/mno_enterprise/mail_adapters/mandrill_adapter.rb