Class: CliApplication::MailLib::SMTP

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

Instance Attribute Summary

Attributes inherited from Base

#config_fail_message, #delivery_method

Instance Method Summary collapse

Methods inherited from Base

#log_filename, #sendmail_arguments, #sendmail_location, #smpt_log?, #valid?

Constructor Details

#initialize(config, folders) ⇒ SMTP

:nodoc:



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

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

  check_config
  init_smtp_config
end

Instance Method Details

#addressString

Метод возвращает host-имя почтового сервера

Returns:

  • (String)

    host-имя почтового сервера



46
47
48
# File 'lib/cli_application/mail_lib/smtp.rb', line 46

def address
  @smtp_config[:address]
end

#authenticationString

Метод возвращает тип аутентификации

Returns:

  • (String)

    тип аутентификации в виде строки (‘plain’, ‘login’)



81
82
83
# File 'lib/cli_application/mail_lib/smtp.rb', line 81

def authentication
  @smtp_config[:authentication].to_s
end

#domainString

Почтовый домен, от имени которого высылается почта

Returns:

  • (String)

    почтовый домен



53
54
55
# File 'lib/cli_application/mail_lib/smtp.rb', line 53

def domain
  @smtp_config[:domain]
end

#passwordString

Метод возвращает пароль пользователя

Returns:

  • (String)

    пароль пользователя



95
96
97
# File 'lib/cli_application/mail_lib/smtp.rb', line 95

def password
  @smtp_config[:password]
end

#portString

Метод возвращает IP-порт почтового сервера

Returns:

  • (String)

    IP-порт почтового сервера



60
61
62
# File 'lib/cli_application/mail_lib/smtp.rb', line 60

def port
  @smtp_config[:port]
end

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

Метод отправляет электроные письма через SMTP

Parameters:

  • to (String)

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

  • name (String)

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

  • title (String)

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

  • body (String)

    текст письма

Returns:

  • (Boolean)

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



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/cli_application/mail_lib/smtp.rb', line 22

def simple_send(to, name, title, body)
  return false unless valid?

  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)

  begin
    send_message(message)
    true
  rescue Errno::ECONNREFUSED
    $stderr.puts "Почтовый сервер #{@smtp_config[:address]}:#{@smtp_config[:port]} не найден"
    false
  rescue Exception => e
    $stderr.puts "Ошибка отправки письма: #{e.message}"
    false
  end
end

#smtp_log?String

Метод возвращает признак активного debug-режима

Returns:

  • (String)

    признак debug-режима



74
75
76
# File 'lib/cli_application/mail_lib/smtp.rb', line 74

def smtp_log?
  @smtp_config[:smtp_log]
end

#tls?Boolean

Метод возвращает тип соединения - TLS или non-TLS

Returns:

  • (Boolean)

    тип соединения, true - TLS, false - non-TLS



67
68
69
# File 'lib/cli_application/mail_lib/smtp.rb', line 67

def tls?
  @smtp_config[:tls]
end

#user_nameString

Метод возвращает логин пользователя электронной почты

Returns:

  • (String)

    имя пользователя (логин)



88
89
90
# File 'lib/cli_application/mail_lib/smtp.rb', line 88

def user_name
  @smtp_config[:user_name]
end