use strict; use warnings; # required modules use Net::IMAP::Simple; use Email::MIME; use IO::Socket::SSL; use Email::MIME::Attachment::Stripper; #### ###IMAP connecting here### my $nm = $imap->select('INBOX'); for ( my $i = 1 ; $i <= $nm ; $i++ ) { if (!$imap->seen($i) ) { next; } else { my $es = Email::MIME->new( join '', @{ $imap->get($i) } ); my $text = $es->body; my $stripper = Email::MIME::Attachment::Stripper->new($es); my @attachments = $stripper->attachments; my $l = 0; foreach $_(@attachments) { my $url = ""; my $fh = IO::File->new(); open($fh, '>', "$filepath"."$_->{filename}"); binmode($fh); print $fh "$_->{payload}\n"; $fh->close; } $imap->put( 'OLD_MESSAGES', $es, "") or warn $imap->errstr; } }