class Mailpy::DeliveryMethod

Constants

MailpyDeliveryError

Attributes

settings[RW]

Public Class Methods

new(params) click to toggle source
# File lib/mailpy.rb, line 11
def initialize(params)
  self.settings = params
end

Public Instance Methods

deliver!(mail) click to toggle source
# File lib/mailpy.rb, line 15
def deliver!(mail)
  perform_send_request(mail, settings)
end

Private Instance Methods

perform_send_request(mail, settings) click to toggle source
# File lib/mailpy.rb, line 20
def perform_send_request(mail, settings)
  begin
    result = MailerApi.new(mail, settings).send
    raise(MailpyDeliveryError, JSON.parse(result.body)['message']) unless result.code === 200
    result
  rescue Errno::ECONNREFUSED
    smtp_settings = Rails.application.config.action_mailer.smtp_settings
    raise(MailpyDeliveryError, "SMTP miss configured. Please add SMTP configuration in your environment config") if smtp_settings.blank?
    result = SMTPApi.new(mail, smtp_settings).send
    result
  end
end