troykoelling has asked for the wisdom of the Perl Monks concerning the following question:

I'm not sure what could be the problem here, but I hope someone here has had some experience with MIME::Lite. I am sending an email with a Word document attached, but when the email arrives, the doc is missing the end. The file is one that a user uploads on a form, and I know it gets fully uploaded because I can see it on my server. It's just after I attach it to a multipart message and send it that I get problems.
my $from_address = 'troy.koelling@colorado.edu'; my $to_address = 'troy.koelling@colorado.edu'; my $subject = '[POC] Online Application Completed'; my $message_body = "An application has been completed online."; my $attachment = "$uploaded_file_dir/$cgi_cfn{'file'}"; my $filename = $cgi_cfn{'poc_template'}; $msg = MIME::Lite->new ( From => $from_address, To => $to_address, Subject => $subject, Type =>'multipart/mixed' ) or print "Error creating multipart container: $!\n"; $msg->attach ( Type => 'TEXT', Data => $message_body ) or print "Error adding the text message part: $!\n"; $msg->attach ( Type => 'application/msword', Path => $attachment, Filename => $filename, ) or die "Error adding $attachment: $!\n"; $msg->send();
As I said, the mail sends and there exists an attachment which contains the first 80% of the file (as compared by opening the original and the attached versions in vim.) As an additional point of interest, $msg->print(); prints out exactly what I receive, i.e. ~80% of the word document inline with the message. Thank you Monks, Troy

Replies are listed 'Best First'.
Re: MIME::Lite Word attachments
by Joost (Canon) on Feb 11, 2005 at 22:15 UTC
      Thanks, it certainly seems odd to me as I can't find anyone else with this problem. Images work fine, so it does appear to be just the word files. On Monday I'm going to try gzipping them before sending them to see if that helps. Thanks for your message. Anyone else who has used this plugin with Word documents, I'd appreciate hearing whether it worked for you.