class Mail::Encodings::TransferEncoding

def self.negotiate(message_encoding, source_encoding, str, allowed_encodings = nil)

def self.negotiate(message_encoding, source_encoding, str, allowed_encodings = nil)
  message_encoding = Encodings.get_encoding(message_encoding) || Encodings.get_encoding('8bit')
  source_encoding  = Encodings.get_encoding(source_encoding)
  if message_encoding && source_encoding && message_encoding.can_transport?(source_encoding) && source_encoding.compatible_input?(str)
    source_encoding
  else
    renegotiate(message_encoding, source_encoding, str, allowed_encodings)
  end
end