in reply to Mail distorted

Besides Mime::Lite, you may also try Mail::Box, which is much more work to install (it's certainly not "Lite"), however more powerful. The following (untested) code is about all you need to do.

  use Mail::Message;
  my $msg = Mail::Message->build
   ( To   => 'to.you@example.com'
   , From => 'me@example.com'
   , file => 'attach.this.file.doc'
   );
  $msg->send(via => sendmail);
See the index of MailBox for details. You need buildFromBody() when you want to set a preamble in the multipart.