class Mail::Message

def body_lazy(value)

see comments to body=. We take data and process it lazily
def body_lazy(value)
  process_body_raw if @body_raw && value
  case
  when value == nil || value.length<=0
    @body = Mail::Body.new('')
    @body_raw = nil
    add_encoding_to_body
  when @body && @body.multipart?
    self.text_part = value
  else
    @body_raw = value
  end
end