in reply to MIME::Tools to save attachment properly

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.

Replies are listed 'Best First'.
Re^2: MIME::Tools to save attachment properly
by gcasa (Novice) on Jul 09, 2015 at 19:20 UTC

    Thank You for the Replies!

    I just updated the code to reflect these changes. Alas, I received the same result.

    The MIME section of the message has the following information:

    ----boundary_0_a3691d3d-2344-4a85-be2b-f56c7108c983 Content-Type: application/octet-stream; name="settings.ace.2015-06-29.181909.(Error).log.7z" Content-Transfer-Encoding: base64 Content-Disposition: attachment

    Is there something I need to tell MIME::Tools specifically for Content-Transfer-Encoding?

    Thank You!