app/models/mail_manager/mailer.rb in mail_manager-3.2.5 vs app/models/mail_manager/mailer.rb in mail_manager-3.2.6

- old
+ new

@@ -200,29 +200,37 @@ image_errors = '' parsed_data.each_with_index do |data,index| if(index % 4 == 2) image = Hash.new() image[:cid] = Base64.encode64(data).gsub(/\s*/,'').reverse[0..59] - final_html << "cid:#{image[:cid]}" + if images.detect{|this_image| this_image[:cid].eql?(image[:cid])} + final_html << "cid:#{image[:cid]}" + next + end #only attach new images! - next if images.detect{|this_image| this_image[:cid].eql?(image[:cid])} begin image[:content] = fetch(data) rescue => e - image_errors += "Couldn't fetch url '#{data}'<!--, #{e.message} - #{e.backtrace.join("\n")}-->\n" + image_errors += "\n Couldn't fetch url '#{data}'<!--, #{e.message} - #{e.backtrace.join("\n")}-->\n" end + if image[:content].blank? + final_html << data + next + end image[:filename] = filename = File.basename(data) extension = filename.gsub(/^.*\./,'').downcase Rails.logger.debug "Fetching Image for: #{filename} #{image[:content].to_s[0..30]}" extension = get_extension_from_data(image[:content]) if image_mime_types(extension).blank? - image_errors += "Couldn't find mime type for #{extension} on #{data}" if image_mime_types(extension).blank? + image_errors += "\n Couldn't find mime type for #{extension} on #{data}" if image_mime_types(extension).blank? image[:content_type] = image_mime_types(extension) + final_html << "cid:#{image[:cid]}" images << image else final_html << data end end - raise image_errors unless image_errors.eql?('') + # FIXME: add warnings for missing images email or on the newsletter/mailing page + # raise image_errors unless image_errors.eql?('') [final_html,images] end # fetch the data from a url (used for images) def fetch(uri_str, limit = 10)