I spent some type changing over to Rex::MIME::Message but ran into an issue.  It looks like to to_s routine mangled the war file.  There's a comment on it that CRLFs are changed for SMTP compatibility but it makes it impossible to unzip the war file.  There are a number of other modules that were using similar code so I'm not sure how they are successful.

def to_s
  msg = self.header.to_s + "\r\n"

  if self.content and not self.content.empty?
    msg << self.content + "\r\n"
  end

  self.parts.each do |part|
    msg << "--" + self.bound + "\r\n"
    msg << part.to_s + "\r\n"
  end

  if self.parts.length > 0
    msg << "--" + self.bound + "--\r\n"
  end

  # Force CRLF for SMTP compatibility
  msg.gsub("\r", '').gsub("\n", "\r\n")
end