aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/incoming_message.rb26
1 files changed, 13 insertions, 13 deletions
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb
index 2f5e87790..8da122260 100644
--- a/app/models/incoming_message.rb
+++ b/app/models/incoming_message.rb
@@ -178,16 +178,16 @@ class IncomingMessage < ActiveRecord::Base
# all the parts of the email (see monkeypatches in lib/mail_handler/tmail_extensions and
# lib/mail_handler/mail_extensions for how these attributes are added). ensure_parts_counted
# must be called before using the attributes.
- def ensure_parts_counted
- self.mail.count_parts_count = 0
- _count_parts_recursive(self.mail)
+ def ensure_parts_counted(mail)
+ mail.count_parts_count = 0
+ _count_parts_recursive(mail, mail)
# we carry on using these numeric ids for attachments uudecoded from within text parts
- self.mail.count_first_uudecode_count = self.mail.count_parts_count
+ mail.count_first_uudecode_count = mail.count_parts_count
end
- def _count_parts_recursive(part)
+ def _count_parts_recursive(part, mail)
if part.multipart?
part.parts.each do |p|
- _count_parts_recursive(p)
+ _count_parts_recursive(p, mail)
end
else
part_filename = MailHandler.get_part_file_name(part)
@@ -210,12 +210,12 @@ class IncomingMessage < ActiveRecord::Base
part.rfc822_attachment = nil
else
unless part.rfc822_attachment.nil?
- _count_parts_recursive(part.rfc822_attachment)
+ _count_parts_recursive(part.rfc822_attachment, mail)
end
end
if part.rfc822_attachment.nil?
- self.mail.count_parts_count += 1
- part.url_part_number = self.mail.count_parts_count
+ mail.count_parts_count += 1
+ part.url_part_number = mail.count_parts_count
end
end
end
@@ -503,14 +503,14 @@ class IncomingMessage < ActiveRecord::Base
# Use standard content types for Word documents etc.
curr_mail.content_type = MailHandler.normalise_content_type(curr_mail.content_type)
if curr_mail.content_type == 'message/rfc822'
- ensure_parts_counted # fills in rfc822_attachment variable
+ ensure_parts_counted(self.mail) # fills in rfc822_attachment variable
if curr_mail.rfc822_attachment.nil?
# Attached mail didn't parse, so treat as text
curr_mail.content_type = 'text/plain'
end
end
if curr_mail.content_type == 'application/vnd.ms-outlook' || curr_mail.content_type == 'application/ms-tnef'
- ensure_parts_counted # fills in rfc822_attachment variable
+ ensure_parts_counted(self.mail) # fills in rfc822_attachment variable
if curr_mail.rfc822_attachment.nil?
# Attached mail didn't parse, so treat as binary
curr_mail.content_type = 'application/octet-stream'
@@ -518,7 +518,7 @@ class IncomingMessage < ActiveRecord::Base
end
# If the part is an attachment of email
if curr_mail.content_type == 'message/rfc822' || curr_mail.content_type == 'application/vnd.ms-outlook' || curr_mail.content_type == 'application/ms-tnef'
- ensure_parts_counted # fills in rfc822_attachment variable
+ ensure_parts_counted(self.mail) # fills in rfc822_attachment variable
leaves_found += _get_attachment_leaves_recursive(curr_mail.rfc822_attachment, curr_mail.rfc822_attachment)
else
# Store leaf
@@ -731,7 +731,7 @@ class IncomingMessage < ActiveRecord::Base
leaves = get_attachment_leaves # XXX check where else this is called from
# XXX we have to call ensure_parts_counted after get_attachment_leaves
# which is really messy.
- ensure_parts_counted
+ ensure_parts_counted(self.mail)
attachments = []
for leaf in leaves
body = MailHandler.get_part_body(leaf)