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
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
|