Class: CliApplication::MailLib::Log

Inherits:
Base
  • Object
show all
Defined in:
lib/cli_application/mail_lib/log.rb

Instance Attribute Summary

Attributes inherited from Base

#config_fail_message, #delivery_method

Instance Method Summary collapse

Methods inherited from Base

#address, #authentication, #domain, #password, #port, #sendmail_arguments, #sendmail_location, #smpt_log?, #tls?, #user_name, #valid?

Constructor Details

#initialize(config, folders) ⇒ Log

:nodoc:



7
8
9
10
11
12
13
# File 'lib/cli_application/mail_lib/log.rb', line 7

def initialize(config, folders) # :nodoc:
  @delivery_method = :log
  super(config, folders)
  check_config

  prepare_log_filename
end

Instance Method Details

#log_filenameString

Данный метод возвращает имя файла для записи логов. В этом методе происходит обработка параметра даты date, что позволяет разбивать логи по дням.

Returns:

  • (String)

    имя лог-файла для записи сообщений



19
20
21
# File 'lib/cli_application/mail_lib/log.rb', line 19

def log_filename
  @log_filename.gsub('{date}', ::Time.zone.now.to_date.to_s(:db))
end

#simple_send(to, name, title, body) ⇒ Boolean

Функция записывает сообщение электронной почты в лог-файл, с преобразованием HTML-формата в текст

Parameters:

  • to (String)

    электронная почта лица, которому отправляется сообщение, или массив адресов

  • name (String)

    имя клиента, которому отправляется сообщение

  • title (String)

    заголовок письма

  • body (String)

    текст письма

Returns:

  • (Boolean)

    true, если письмо отправлено



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/cli_application/mail_lib/log.rb', line 30

def simple_send(to, name, title, body)
  message = CliApplication::MailLib::Message.new
  message.from_email = @config.from
  message.subject = title
  message.body = (@config.footer.nil? || @config.footer == '') ? body : (body+@config.footer)

  processing_to(to, name, message)

  out = Array.new
  out << ''
  out << "--- #{StTools::Human.format_time(::Time.zone.now, :full, :full)} -------------------"
  out << message.to_log
  record = out.join("\n")

  open(log_filename, 'a') do |f|
    f.puts record
  end

  true
rescue Exception => e
  $stderr.puts "Ошибка записи электронного сообщения: #{e.message}"
  false
end