Method: Mailkick::Processor#process

Defined in:
lib/mailkick/processor.rb

#processObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mailkick/processor.rb', line 9

def process
  email = message.to.first
  user = Mailkick.user_method.call(email) if Mailkick.user_method
  list = message[:mailkick_list].try(:value)
  if list
    # remove header
    message[:mailkick_list] = nil
  end

  verifier = ActiveSupport::MessageVerifier.new(Mailkick.secret_token)
  token = verifier.generate([email, user.try(:id), user.try(:class).try(:name), list])

  parts = message.parts.any? ? message.parts : [message]
  parts.each do |part|
    if part.content_type.match(/text\/(html|plain)/)
      part.body = part.body.decoded.gsub(/%7B%7BMAILKICK_TOKEN%7D%7D/, CGI.escape(token))
    end
  end
end