Class: CliApplication::MailLib::Message
- Inherits:
-
Object
- Object
- CliApplication::MailLib::Message
- Defined in:
- lib/cli_application/mail_lib/message.rb
Instance Attribute Summary collapse
-
#body ⇒ Object
Returns the value of attribute body.
-
#charset ⇒ Object
Returns the value of attribute charset.
-
#from_email ⇒ Object
Returns the value of attribute from_email.
-
#from_name ⇒ Object
Returns the value of attribute from_name.
-
#reply_to ⇒ Object
Returns the value of attribute reply_to.
-
#subject ⇒ Object
Returns the value of attribute subject.
Instance Method Summary collapse
-
#add_bcc(email, name = '') ⇒ None
Метод добавляет в поле BCC получателя сообщения.
-
#add_cc(email, name = '') ⇒ None
Метод добавляет в поле CC получателя сообщения.
-
#add_to(email, name = '') ⇒ None
Метод добавляет в поле TO получателя сообщения.
-
#clear_bcc(warning = false) ⇒ None
Метод очищает все ранее добавленные адреса BCC.
-
#clear_cc(warning = false) ⇒ None
Метод очищает все ранее добавленные адреса CC.
-
#clear_to(warning = false) ⇒ None
Метод очищает все ранее добавленные адреса TO.
-
#initialize ⇒ None
constructor
Конструктор инициализирует сообщение электронной почты и компоненты сообщения.
-
#to_log ⇒ String
Метод осуществляет сборку (композицию) сообщения в формате MIME для записи в лог файл без преобразований base64.
-
#to_s ⇒ String
Метод осуществляет сборку (композицию) сообщения в формате MIME для отправки в Интернет.
Constructor Details
#initialize ⇒ None
Конструктор инициализирует сообщение электронной почты и компоненты сообщения
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/cli_application/mail_lib/message.rb', line 16 def initialize @charset = 'utf-8' @body = '' @subject = '' @from_email = '' @from_name = '' @reply_to = '' @to = Hash.new @cc = Hash.new @bcc = Hash.new @message_id = ::Time.now.to_s.hash.abs.to_s + '.' + ::Time.now.usec.to_s end |
Instance Attribute Details
#body ⇒ Object
Returns the value of attribute body.
11 12 13 |
# File 'lib/cli_application/mail_lib/message.rb', line 11 def body @body end |
#charset ⇒ Object
Returns the value of attribute charset.
10 11 12 |
# File 'lib/cli_application/mail_lib/message.rb', line 10 def charset @charset end |
#from_email ⇒ Object
Returns the value of attribute from_email.
6 7 8 |
# File 'lib/cli_application/mail_lib/message.rb', line 6 def from_email @from_email end |
#from_name ⇒ Object
Returns the value of attribute from_name.
7 8 9 |
# File 'lib/cli_application/mail_lib/message.rb', line 7 def from_name @from_name end |
#reply_to ⇒ Object
Returns the value of attribute reply_to.
8 9 10 |
# File 'lib/cli_application/mail_lib/message.rb', line 8 def reply_to @reply_to end |
#subject ⇒ Object
Returns the value of attribute subject.
9 10 11 |
# File 'lib/cli_application/mail_lib/message.rb', line 9 def subject @subject end |
Instance Method Details
#add_bcc(email, name = '') ⇒ None
Метод добавляет в поле BCC получателя сообщения. Может вызываться несколько раз для добавления нескольких получателей. Особенности обработки. Если в метод передать значения адреса, включающего имя пользователя, то параметр name будет проигнорирован. Name будет взят из переданного адреса. Вторая особенность - при использовании метода отправки :smtp, все BCC-адреса будут удалены.
161 162 163 164 165 166 167 168 |
# File 'lib/cli_application/mail_lib/message.rb', line 161 def add_bcc(email, name = '') res = parse_email(email) if name == '' @bcc[res[:email]] = res[:name] else @bcc[res[:email]] = name end end |
#add_cc(email, name = '') ⇒ None
Метод добавляет в поле CC получателя сообщения. Может вызываться несколько раз для добавления нескольких получателей. Особенности обработки. Если в метод передать значения адреса, включающего имя пользователя, то параметр name будет проигнорирован. Name будет взят из переданного адреса. Вторая особенность - при использовании метода отправки :smtp, все CC-адреса будут помещены в TO.
140 141 142 143 144 145 146 147 |
# File 'lib/cli_application/mail_lib/message.rb', line 140 def add_cc(email, name = '') res = parse_email(email) if name == '' @cc[res[:email]] = res[:name] else @cc[res[:email]] = name end end |
#add_to(email, name = '') ⇒ None
Метод добавляет в поле TO получателя сообщения. Может вызываться несколько раз для добавления нескольких получателей. Особенности обработки. Если в метод передать значения адреса, включающего имя пользователя, то параметр name будет проигнорирован. Name будет взят из переданного адреса.
119 120 121 122 123 124 125 126 |
# File 'lib/cli_application/mail_lib/message.rb', line 119 def add_to(email, name = '') res = parse_email(email) if name == '' @to[res[:email]] = res[:name] else @to[res[:email]] = name end end |
#clear_bcc(warning = false) ⇒ None
Метод очищает все ранее добавленные адреса BCC.
200 201 202 203 204 205 206 207 |
# File 'lib/cli_application/mail_lib/message.rb', line 200 def clear_bcc(warning = false) unless @bcc.empty? if warning warn "Предупреждение: BCC-адреса #{@bcc.inspect} удалены" end @bcc = Hash.new end end |
#clear_cc(warning = false) ⇒ None
Метод очищает все ранее добавленные адреса CC.
187 188 189 190 191 192 193 194 |
# File 'lib/cli_application/mail_lib/message.rb', line 187 def clear_cc(warning = false) unless @cc.empty? if warning warn "Предупреждение: CC-адреса #{@cc.inspect} удалены" end @cc = Hash.new end end |
#clear_to(warning = false) ⇒ None
Метод очищает все ранее добавленные адреса TO.
174 175 176 177 178 179 180 181 |
# File 'lib/cli_application/mail_lib/message.rb', line 174 def clear_to(warning = false) unless @to.empty? if warning warn "Предупреждение: TO-адреса #{@to.inspect} удалены" end @to = Hash.new end end |
#to_log ⇒ String
Метод осуществляет сборку (композицию) сообщения в формате MIME для записи в лог файл без преобразований base64
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/cli_application/mail_lib/message.rb', line 35 def to_log = Array.new << "From: #{build_rfc822_name(@from_email, @from_name, false)}" unless @from_email == '' << build_to_adresses("To", @to, false) << build_to_adresses("Cc", @cc, false) << build_to_adresses("Bcc", @bcc, false) << "Reply-To: #{build_rfc822_name(@reply_to)}" unless @reply_to == '' << "Subject: #{@subject}" << html_to_text(@body.dup, 65, @charset) .compact! .join("\n") end |
#to_s ⇒ String
Метод осуществляет сборку (композицию) сообщения в формате MIME для отправки в Интернет. Поля TO, CC, BCC, Subject преобразуются в бинарную форму через base64
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/cli_application/mail_lib/message.rb', line 53 def to_s = Array.new << "From: #{build_rfc822_name(@from_email, @from_name)}" unless @from_email == '' << "Return-Path: <#{@from_email}>" # http://maksd.info/blog/vse-posty-iz-starogo-bloga/message-75/ << build_to_adresses("To", @to) << build_to_adresses("Cc", @cc) << build_to_adresses("Bcc", @bcc) << "Reply-To: #{build_rfc822_name(@reply_to)}" unless @reply_to == '' << "Subject: #{base64_string_encode(@subject)}" << "Date: #{::Time.zone.now.to_formatted_s(:rfc822) }" << "MIME-Version: 1.0 (Ruby gem cli_application; version #{::CliApplication::VERSION})" << "Message-ID: <#{@message_id + '@' + @from_email.split('@').last}>" += alternative_to_s += body_to_s(html_to_text(@body.dup, 65, @charset), 'text/plain') += body_to_s(@body, 'text/html') += .compact! .join("\n") end |