lib/sup/message.rb in sup-0.6 vs lib/sup/message.rb in sup-0.7

- old
+ new

@@ -62,11 +62,11 @@ parse_header(opts[:header] || @source.load_header(@source_info)) end def parse_header header - header.each { |k, v| header[k.downcase] = v } + header.keys.each { |k| header[k.downcase] = header[k] } # canonicalize fakeid = nil fakename = nil @id = @@ -390,11 +390,12 @@ chunks elsif m.header.content_type == "message/rfc822" payload = RMail::Parser.read(m.body) from = payload.header.from.first from_person = from ? PersonManager.person_for(from.format) : nil - [Chunk::EnclosedMessage.new(from_person, payload.to_s)] + [Chunk::EnclosedMessage.new(from_person, payload.to_s)] + + message_to_chunks(payload, encrypted) else filename = ## first, paw through the headers looking for a filename if m.header["Content-Disposition"] && m.header["Content-Disposition"] =~ /filename="?(.*?[^\\])("|;|$)/ $1 @@ -431,14 +432,13 @@ end end end def self.convert_from body, charset - charset = "utf-8" if charset =~ /UTF_?8/i begin raise MessageFormatError, "RubyMail decode returned a null body" unless body return body unless charset - Iconv.iconv($encoding + "//IGNORE", charset, body + " ").join[0 .. -2] + Iconv.easy_decode($encoding, charset, body) rescue Errno::EINVAL, Iconv::InvalidEncoding, Iconv::IllegalSequence, MessageFormatError => e Redwood::log "warning: error (#{e.class.name}) decoding message body from #{charset}: #{e.message}" File.open(File.join(BASE_DIR,"unable-to-decode.txt"), "w") { |f| f.write body } body end