Class: Outbox::Clients::MailClient

Inherits:
Base
  • Object
show all
Defined in:
lib/outbox/clients/mail_client.rb

Instance Attribute Summary

Attributes inherited from Base

#settings

Instance Method Summary collapse

Methods inherited from Base

defaults, #initialize

Constructor Details

This class inherits a constructor from Outbox::Clients::Base

Instance Method Details

#deliver(email) ⇒ Object



33
34
35
36
37
# File 'lib/outbox/clients/mail_client.rb', line 33

def deliver(email)
  message = create_message_from_email(email)
  message.delivery_method(delivery_method, delivery_method_settings)
  message.deliver
end

#delivery_methodObject

Returns the configured delivery method.



7
8
9
# File 'lib/outbox/clients/mail_client.rb', line 7

def delivery_method
  settings[:delivery_method]
end

#delivery_method_settingsObject

Returns the configured delivery method settings. This will also check the Rails-style ##delivery_method_settings key as well.

client = Outbox::Clients::MailClient.new(
  delivery_method: :sendmail,
  delivery_method_settings: { location: '/usr/bin/sendmail' }
)
client.delivery_method_settings #=> { location: '/usr/bin/sendmail' }

client = Outbox::Clients::MailClient.new(
  delivery_method: :sendmail,
  sendmail_settings: { location: '/usr/bin/sendmail' }
)
client.delivery_method_settings #=> { location: '/usr/bin/sendmail' }


25
26
27
28
29
30
31
# File 'lib/outbox/clients/mail_client.rb', line 25

def delivery_method_settings
  (
    settings[:delivery_method_settings] ||
    settings[:"#{delivery_method}_settings"] ||
    {}
  )
end