class LogMonitor::EmailAlerter

Public Instance Methods

alert() click to toggle source
# File lib/log_monitor/alerter.rb, line 112
def alert
  begin
    mail = Mail.new
    mail[:from] = @config['from']
    mail[:to] = @config['to']
    mail.subject = @config['subject']
    smtpserver = Net::SMTP.new(@smtp_settings[:address], @smtp_settings[:port])
    smtpserver.enable_tls(OpenSSL::SSL::VERIFY_NONE)
    smtpserver.start(@smtp_settings[:domain], @smtp_settings[:user_name], @smtp_settings[:password], :login) do |smtp|
      mail.body = @alert_body
      smtp.send_message(mail.encoded, mail.from, mail.to)
    end
  rescue => e
    $stderr.puts "LogMonitor error"
    $stderr.puts e.message
    2.times $stderr.puts
  end
  clear_alert
end
set_email(config) click to toggle source
# File lib/log_monitor/alerter.rb, line 99
def set_email(config)
  @config = config
  @smtp_settings = {
    address: config['address'],
    port: config['port'],
    user_name: config['user_name'],
    password: config['password'],
    domain: config['domain'],
    authentication: config['authentication'].nil? ? :plain : config['authentication'],
    enable_starttls_auto: true
  }
end