In the "Other I/O" section of the MIME::Body documentation, the following examples are shown:
### Dump the ENCODED body data to a filehandle: $body->print(\*STDOUT); ### Slurp all the UNENCODED data in, and put it in a scalar: $string = $body->as_string; ### Slurp all the UNENCODED data in, and put it in an array of lines: @lines = $body->as_lines;
Why not, then, do something such as this (untested)?
for $part( @parts ) { my $type = $part->mime_type; my $bh = $part->bodyhandle; print "MIME Type: $type\n"; if ( defined $bh ) { open( my $OUTFILE, ">", "output.7z" ) or die $!; $bh->print(\$OUTFILE); close( $OUTFILE ); } }
Also, have you looked at the output.7z file that was generated to see if perchance it was encoded (Base64, Quoted-Printable, etc.), or if there was perhaps miscellaneous characters at the beginning causing 7zip to think the file invalid?
Hope that helps.
Update: 2015-07-09
Added additional question regarding output.7z file.
In reply to Re: MIME::Tools to save attachment properly
by atcroft
in thread MIME::Tools to save attachment properly
by gcasa
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |