Module: Tuktuk::Package

Defined in:
lib/tuktuk/package.rb

Class Method Summary collapse

Class Method Details

.build(message, index = nil) ⇒ Object



13
14
15
16
17
# File 'lib/tuktuk/package.rb', line 13

def build(message, index = nil)
  mail = message.is_a?(Hash) ? new(message) : message.is_a?(Mail) ? message : Mail.read_from_string(message.to_s)
  mail.array_index = index if index
  mail
end

.mixed(message) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/tuktuk/package.rb', line 56

def mixed(message)
  mail = Mail.new do
    from        message[:from]
    to          message[:to]
    reply_to    message[:reply_to] if message[:reply_to]
    # sender    message[:sender] if message[:sender]
    subject     message[:subject]
    message_id  message[:message_id] if message[:message_id]
    text_part do
      body      message[:body]
    end
    html_part do
      content_type 'text/html; charset=UTF-8'
      body      message[:html_body]
    end
  end
end

.new(message) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/tuktuk/package.rb', line 19

def new(message)
  mail = message[:html_body] ? mixed(message) : plain(message)
  mail.charset = 'UTF-8'

  mail['In-Reply-To']      = message[:in_reply_to] if message[:in_reply_to]
  mail['List-Unsubscribe'] = message[:list_unsubscribe] if message[:list_unsubscribe]
  mail['List-Archive']     = message[:list_archive] if message[:list_archive]
  mail['List-Id']          = message[:list_id] if message[:list_id]
  mail['X-Mailer']         = "Tuktuk SMTP v#{Tuktuk::VERSION}"

  if message[:return_path]
    mail['Return-Path'] = message[:return_path]
    mail['Bounces-To']  = message[:return_path]
    mail['Errors-To']   = message[:return_path]
  end
  
  if (message[:attachments] || []).any?
    message[:attachments].each do |file|
      mail.add_file(file)
    end
  end

  mail
end

.plain(message) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/tuktuk/package.rb', line 44

def plain(message)
  mail = Mail.new do
    from        message[:from]
    to          message[:to]
    reply_to    message[:reply_to] if message[:reply_to]
    # sender    message[:sender] if message[:sender]
    subject     message[:subject]
    message_id  message[:message_id] if message[:message_id]
    body        message[:body]
  end
end