Module: MultiMail::Receiver

Defined in:
lib/multi_mail/receiver.rb,
lib/multi_mail/receiver/base.rb,
lib/multi_mail/mailgun/receiver.rb,
lib/multi_mail/mandrill/receiver.rb

Overview

Defined Under Namespace

Modules: Base Classes: Mailgun, Mandrill

Class Method Summary collapse

Class Method Details

.new(attributes) ⇒ Object

Examples:

require 'multi_mail'
service = MultiMail::Receiver.new({
  :provider => 'mailgun',
  :mailgun_api_key => 'key-xxxxxxxxxxxxxxxxxxxxxxx-x-xxxxxx',
})

Parameters:

  • attributes (Hash)

    required arguments

  • opts (Hash)

    a customizable set of options

See Also:

  • Fog::Storage::new


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/multi_mail/receiver.rb', line 17

def self.new(attributes)
  attributes = attributes.dup # prevent delete from having side effects
  case provider = attributes.delete(:provider).to_s.downcase.to_sym
  when :cloudmailin
    require 'multi_mail/cloudmailin/receiver'
    MultiMail::Receiver::Cloudmailin.new(attributes)
  when :mailgun
    require 'multi_mail/mailgun/receiver'
    MultiMail::Receiver::Mailgun.new(attributes)
  when :mandrill
    require 'multi_mail/mandrill/receiver'
    MultiMail::Receiver::Mandrill.new(attributes)
  when :postmark
    require 'multi_mail/postmark/receiver'
    MultiMail::Receiver::Postmark.new(attributes)
  when :sendgrid
    require 'multi_mail/sendgrid/receiver'
    MultiMail::Receiver::SendGrid.new(attributes)
  when :mock
    # for testing
    MultiMail::Receiver::Mock.new(attributes)
  else
    raise ArgumentError.new("#{provider} is not a recognized provider")
  end
end