S
satyakm79
Hi all,
I am trying to retrieve all the attachments from a POP3 server. But
before retrieving I would like to get the size of the attachment and
compare it with the available disk space in my local station and then
retrieve. Can anyone suggest me how to find the size of an attachment?
I am able to find the available disk space using File::Find. Plz find
my script below :
#!/usr/bin/perl
use Carp;
use Email::MIME;
use File::Basename;
use Net:OP3;
use File::Find;
my $server = '192.168.100.254';
my $receiveruname = 'admin';
my $password = 'admin';
my $attachment_dir = 'D:\\Attachments\\';
my $pop = Net:OP3->new($server);
croak "Couldn't connect to the server.\n\n" unless $pop;
my $num_messages = $pop->login( $receiveruname, $password );
croak "Connection trouble network password user ..."
unless defined $num_messages;
for my $i ( 1 .. $num_messages ) {
my $aref = $pop->get($i);
my $em = Email::MIME->new( join '', @$aref );
for ( my @parts = $em->parts ) {
print $_->content_type, "\n";
next unless $_->content_type =~ m(^application/octet-stream)i;
my $filename = basename( $_->filename || '' );
my $basefilename = $filename || 'UNNAMED';
my $filesize = -s "$filename" ;
print "\nFilesize of $filename = $filesize
\n";
if ( $filename eq "null" ) {
$pop->delete($i); # To avoid
downloading file "null" of 0KB
}
else {
open my $fh, ">", "$attachment_dir/
$filename" or croak $!;
binmode $fh;
print $fh $_->body;
$pop->delete($i);
}
}
}
$pop->quit;
I am trying to retrieve all the attachments from a POP3 server. But
before retrieving I would like to get the size of the attachment and
compare it with the available disk space in my local station and then
retrieve. Can anyone suggest me how to find the size of an attachment?
I am able to find the available disk space using File::Find. Plz find
my script below :
#!/usr/bin/perl
use Carp;
use Email::MIME;
use File::Basename;
use Net:OP3;
use File::Find;
my $server = '192.168.100.254';
my $receiveruname = 'admin';
my $password = 'admin';
my $attachment_dir = 'D:\\Attachments\\';
my $pop = Net:OP3->new($server);
croak "Couldn't connect to the server.\n\n" unless $pop;
my $num_messages = $pop->login( $receiveruname, $password );
croak "Connection trouble network password user ..."
unless defined $num_messages;
for my $i ( 1 .. $num_messages ) {
my $aref = $pop->get($i);
my $em = Email::MIME->new( join '', @$aref );
for ( my @parts = $em->parts ) {
print $_->content_type, "\n";
next unless $_->content_type =~ m(^application/octet-stream)i;
my $filename = basename( $_->filename || '' );
my $basefilename = $filename || 'UNNAMED';
my $filesize = -s "$filename" ;
print "\nFilesize of $filename = $filesize
\n";
if ( $filename eq "null" ) {
$pop->delete($i); # To avoid
downloading file "null" of 0KB
}
else {
open my $fh, ">", "$attachment_dir/
$filename" or croak $!;
binmode $fh;
print $fh $_->body;
$pop->delete($i);
}
}
}
$pop->quit;