| Class | Mack::Notifier::Adapters::Tmail |
| In: |
lib/mack-notifier/adapters/tmail.rb
|
| Parent: | Mack::Notifier::Adapters::Base |
Converts a Mack::Notifier object into a TMail object.
Converts the Mack::Notifier object to a TMail object.
# File lib/mack-notifier/adapters/tmail.rb, line 23
23: def convert
24: @tmail = TMail::Mail.new
25: @tmail.to = mack_notifier.to
26: @tmail.cc = mack_notifier.cc
27: @tmail.bcc = mack_notifier.bcc
28: @tmail.reply_to = mack_notifier.reply_to
29: @tmail.from = mack_notifier.from
30: @tmail.subject = mack_notifier.subject
31: @tmail.date = mack_notifier.date_sent
32: @tmail.mime_version = mack_notifier.mime_version
33:
34: # set text and html bodies
35: main_body = TMail::Mail.new
36: unless mack_notifier.body(:plain).blank?
37: text = TMail::Mail.new
38: text.content_type = "text/plain"
39: text.body = mack_notifier.body(:plain)
40: main_body.parts << text
41: end
42: unless mack_notifier.body(:html).blank?
43: html = TMail::Mail.new
44: html.content_type = "text/html"
45: html.body = mack_notifier.body(:html)
46: main_body.parts << html
47: end
48:
49: unless main_body.parts.empty?
50: main_body.content_type = "multipart/alternative"
51: if mack_notifier.attachments.any? # there's an attachment
52: @tmail.parts << main_body
53: else
54: if main_body.parts.size == 1
55: @tmail.body = main_body.parts.first.body
56: else
57: @tmail.parts << main_body
58: end
59: end
60: end
61:
62: # set attachments, if any.
63: mack_notifier.attachments.each do |at|
64: attachment = TMail::Mail.new
65: attachment.body = Base64.encode64(at.body)
66: attachment.transfer_encoding = "Base64"
67: attachment.content_type = "application/octet-stream"
68: attachment['Content-Disposition'] = "attachment; filename=#{at.file_name}"
69: @tmail.parts << attachment
70: end
71:
72: @tmail.content_type = mack_notifier.content_type
73: end
Returns the ready to be delivered encoded String
# File lib/mack-notifier/adapters/tmail.rb, line 18
18: def deliverable
19: transformed.encoded
20: end
Returns the underlying TMail object. Raises Mack::Errors::UnconvertedNotifier if the convert method hasn‘t been called first.
# File lib/mack-notifier/adapters/tmail.rb, line 12
12: def transformed
13: raise Mack::Errors::UnconvertedNotifier.new if @tmail.nil?
14: @tmail
15: end