diff --git a/lib/email/receiver.rb b/lib/email/receiver.rb index a601b27eb7e..8a95dbf6d33 100644 --- a/lib/email/receiver.rb +++ b/lib/email/receiver.rb @@ -890,12 +890,12 @@ module Email def create_post_with_attachments(options = {}) # deal with attachments - options[:raw] = add_attachments(options[:raw], options[:user], options) + options[:raw] = add_attachments(options[:raw], options[:user].id, options) create_post(options) end - def add_attachments(raw, user, options = {}) + def add_attachments(raw, user_id, options = {}) rejected_attachments = [] attachments.each do |attachment| tmp = Tempfile.new(["discourse-email-attachment", File.extname(attachment.filename)]) @@ -904,7 +904,7 @@ module Email File.open(tmp.path, "w+b") { |f| f.write attachment.body.decoded } # create the upload for the user opts = { for_group_message: options[:is_group_message] } - upload = UploadCreator.new(tmp, attachment.filename, opts).create_for(user.id) + upload = UploadCreator.new(tmp, attachment.filename, opts).create_for(user_id) if upload&.valid? # try to inline images if attachment.content_type&.start_with?("image/") diff --git a/script/import_scripts/mbox/importer.rb b/script/import_scripts/mbox/importer.rb index db0269d8883..dbccf64c328 100644 --- a/script/import_scripts/mbox/importer.rb +++ b/script/import_scripts/mbox/importer.rb @@ -93,13 +93,17 @@ module ImportScripts::Mbox next if all_records_exist?(:posts, rows.map { |row| row['msg_id'] }) create_posts(rows, total: total_count, offset: offset) do |row| - if row['email_date'].blank? - puts "Date is missing. Skipping #{row['msg_id']}" - nil - elsif row['in_reply_to'].blank? - map_first_post(row) - else - map_reply(row) + begin + if row['email_date'].blank? + puts "Date is missing. Skipping #{row['msg_id']}" + nil + elsif row['in_reply_to'].blank? + map_first_post(row) + else + map_reply(row) + end + rescue => e + puts "Failed to map post for #{row['msg_id']}", e, e.backtrace.join("\n") end end end