http://www.perlmonks.org?node_id=1038705

vinoth.ree has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks!

Actually I am writing a perl script to read the unseen emails from inbox using Mail::IMAPTalk and extract the attachments.

I successfully extracted the attachment files, but once the emails read from the emails server, i need to mark those emails as read so that my script will not read those emails again.

Here is the code connects with the Email server and gets the unseen emails.

sub Connection { my $imap = Mail::IMAPTalk->new( Server => $_[0], Port => $_[3], Username => $_[1], Password => $_[2], Separator => '.', RootFolder => 'Inbox', CaseInsensitive => 1, ParseOption => 'DecodeUTF8', ) || die "Connection failed. Reason: $@"; print "IMAP connection successful !\n"; # select the IMAP folder and the last not seen message $imap->select($_[4]) || die $@; my @MsgIds = $imap->search('not', 'seen'); if(@MsgIds){ foreach my $MsgId (@MsgIds) { # Fetch the message body as a MIME object my $MsgTxt = $imap->fetch($MsgId, "body[]")->{$MsgId}->{body} +|| die "Can't fetch the message !"; my $Msg = $imap->fetch($MsgId, 'envelope')->{$MsgId}->{envelop +e}; $Msg->{From} =~ s/(")|(<.*>)|(\s{2,})|(\s+$)//g; &Extract_Attachement( $MsgTxt ); } } else { die "No new message in the mailbox\n"; } } my $server = 'imap.secureserver.net'; my $username = 'xxxxxx'; my $password = 'xxxxxx'; # establish IMAP connection &Connection($server,$username,$password,143,'INBOX');

All is well