class Outbox::Clients::MailClient

Public Instance Methods

deliver(email) click to toggle source
# 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_method() click to toggle source

Returns the configured delivery method.

# File lib/outbox/clients/mail_client.rb, line 7
def delivery_method
  settings[:delivery_method]
end
delivery_method_settings() click to toggle source

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' }
# File lib/outbox/clients/mail_client.rb, line 25
def delivery_method_settings
  (
    settings[:delivery_method_settings] ||
    settings[:"#{delivery_method}_settings"] ||
    {}
  )
end

Private Instance Methods

create_message_from_email(email) click to toggle source
# File lib/outbox/clients/mail_client.rb, line 41
def create_message_from_email(email)
  email.message_object.dup
end