Class: Denouncer::Notifiers::SmtpNotifier

Inherits:
BaseNotifier show all
Defined in:
lib/denouncer/notifiers/smtp_notifier.rb

Constant Summary collapse

DEFAULT_PORT =
25
DEFAULT_SERVER =
'localhost'
DEFAULT_DOMAIN =
'localhost'

Instance Attribute Summary

Attributes inherited from BaseNotifier

#config

Instance Method Summary collapse

Methods inherited from BaseNotifier

#get_current_timestamp, #get_error_cause, #initialize

Constructor Details

This class inherits a constructor from Denouncer::Notifiers::BaseNotifier

Instance Method Details

#nameString

Returns:

  • (String)


13
14
15
# File 'lib/denouncer/notifiers/smtp_notifier.rb', line 13

def name
  'smtp'
end

#notify(error, metadata = nil) ⇒ Object

Sends an error notification via mail.

Parameters:

  • error (StandardError)
  • metadata (Hash) (defaults to: nil)


34
35
36
37
38
# File 'lib/denouncer/notifiers/smtp_notifier.rb', line 34

def notify(error,  = nil)
  Net::SMTP.start(config[:server], config[:port], config[:domain], config[:username], config[:password], config[:authtype]) do |smtp|
    smtp.send_message generate_text_message(error, ), config[:sender], config[:recipients]
  end
end

#set_configuration!(options) ⇒ Object

Raises:

  • (StandardError)

    if the configuration is invalid



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/denouncer/notifiers/smtp_notifier.rb', line 18

def set_configuration!(options)
  raise "Configuration error: :application_name is not set!" if options[:application_name].nil?
  raise "SMTP configuration error: #{options[:sender]} is not a valid :sender setting!" if options[:sender].nil? || !options[:sender].is_a?(String)
  raise "SMTP configuration error: :recipients is nil!" if options[:recipients].nil?

  options[:server] = DEFAULT_SERVER if options[:server].nil?
  options[:port] = DEFAULT_PORT if options[:port].nil?
  options[:domain] = DEFAULT_DOMAIN if options[:domain].nil?
  options[:authtype] = options[:authtype].to_sym unless options[:authtype].nil?
  return options
end