Module: MultiMail::Receiver

Defined in:
lib/multi_mail/receiver.rb,
lib/multi_mail/receiver/base.rb,
lib/multi_mail/simple/receiver.rb,
lib/multi_mail/mailgun/receiver.rb,
lib/multi_mail/mandrill/receiver.rb,
lib/multi_mail/postmark/receiver.rb,
lib/multi_mail/sendgrid/receiver.rb,
lib/multi_mail/cloudmailin/receiver.rb

Overview

Endpoint for initializing different incoming email receivers.

Defined Under Namespace

Modules: Base Classes: Cloudmailin, Mailgun, Mandrill, Postmark, SendGrid, Simple

Class Method Summary collapse

Class Method Details

.new(attributes) ⇒ Object

Initializes an incoming email receiver.

Examples:

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

Parameters:

  • attributes (Hash)

    required arguments

Options Hash (attributes):

  • :provider (String, Symbol)

    a provider

Returns:

  • an incoming email receiver

Raises:

  • (ArgumentError)

    if the provider does not exist

See Also:

  • Fog::Storage::new


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

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 :simple
    require 'multi_mail/simple/receiver'
    MultiMail::Receiver::Simple.new(attributes)
  else
    raise ArgumentError.new("#{provider} is not a recognized provider")
  end
end