class Tolliver::Services::Methods::Email

Public Instance Methods

deliver(notification_receiver) click to toggle source
# File lib/tolliver/services/methods/email.rb, line 34
def deliver(notification_receiver)
  return false if provider.nil?

  # Prepare notification
  notification = notification_receiver.notification_delivery.notification

  # Send email
  begin
    provider.deliver(notification, notification_receiver)
    notification_receiver.status = 'sent'
  #rescue Net::SMTPFatalError, Net::SMTPSyntaxError
  rescue StandardError => e
    notification_receiver.status = 'error'
    notification_receiver.error_message = e.message
  end

  # Mark as sent
  notification_receiver.sent_at = Time.current

  # Save
  notification_receiver.save

  true
end
is_notification_delivery_valid?(notification_delivery) click to toggle source
# File lib/tolliver/services/methods/email.rb, line 23
def is_notification_delivery_valid?(notification_delivery)
  return false if !notification_delivery.sender_email.blank? && !(notification_delivery.sender_email =~ URI::MailTo::EMAIL_REGEXP)
  true
end
is_notification_receiver_valid?(notification_receiver) click to toggle source
# File lib/tolliver/services/methods/email.rb, line 28
def is_notification_receiver_valid?(notification_receiver)
  return false if notification_receiver.receiver_email.blank?
  return false unless notification_receiver.receiver_email =~ URI::MailTo::EMAIL_REGEXP
  true
end
is_notification_valid?(notification) click to toggle source
# File lib/tolliver/services/methods/email.rb, line 17
def is_notification_valid?(notification)
  return false if notification.subject.blank?
  return false if notification.message.blank?
  true
end

Protected Instance Methods

provider() click to toggle source
# File lib/tolliver/services/methods/email.rb, line 61
def provider
  if @provider.nil? && Tolliver.email_provider
    provider_class_name = "Tolliver::Services::Methods::Email::#{Tolliver.email_provider.to_s.camelize}"
    @provider = provider_class_name.constantize.new(Tolliver.email_provider_params)
  end
  @provider
end