problems with decoding: resulting image is corrupt

B

Bjorn Jensen

Hello!
My resulting image har nearly same size of original (but not exact) and the
nu.jpg can be shown,
but it is modified so much, that it look totally different.... why? what to
do?
Greetings Bjorn!

============================
use strict;
use Net::pOP3;
use MIME::Base64;

my $username = 'user1';
my $password = 'userpw';
my $pop = Net::pOP3->new('mailme.org', Timeout => 60);

if ($pop->login($username, $password) > 0) {
my $msgnums = $pop->list; # hashref of msgnum => size
foreach my $msgnum (keys %$msgnums) {
my $mailfile = 'mail'.$msgnum.".txt";
open(M, ">$mailfile") or die "Error\tCouldn't open $mailfile, $!";
print "msg $msgnum\n";
my $msg = $pop->get($msgnum);
#print @$msg;
print M @$msg;
#$pop->delete($msgnum);
close(M);
}
}

$pop->quit;
my $b64str;
open(UD, ">nu.jpg") or die "$!";

open(IND, "<mail2.txt") or die "$!";
my $part2decode = 0;
my $line = 0;

while(<IND>) {
if ( /Content-Disposition/i ) {
$part2decode++;
}
if ( $part2decode ) {
$line++;
}
if ( /Boundary/ ) {
$part2decode = 0;
}
if ( $part2decode && $line > 1 ) {
my $encoded = $_;

my $decoded = decode_base64($encoded);
print UD $decoded;
}
}
close(UD);
close(IND);
 
J

Joe Smith

Bjorn said:
My resulting image har nearly same size of original (but not exact) and the
nu.jpg can be shown,
but it is modified so much, that it look totally different.... why?

You have to use binmode() when dealing with binary files.
open(UD, ">nu.jpg") or die "$!";

open(UD, '>', 'nu.jpg') or die "Cannot create nu.jpg: $!";
binmode(UD);

-Joe
 
B

Bjorn Jensen

Hi again!
Oh, of course - I tried binary(UD) yesterday but this gave error.'
Now it works - thanks!
Now I'll look for a better way to extract attachments.
I try to figure out, how to use
Email::MIME::Attachment::Stripper;
but have no success...
The documentation is spare.
Any good example, that I can use for expanding my case below?

Greetings Bjørn
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top