foreach my $mbox qw( SPAM HAM ) { $imap->select($mbox); my @msgs = $imap->search("ALL"); $imap->message_to_file("/home/mail/mbox/$mbox".".msgs",@msgs); $imap->delete_message(@msgs); $imap->close(); } #### use Mail::IMAPClient; my $imap = Mail::IMAPClient->new( Server => 'imap.server.com:143', User => 'user', Password => 'pass') or die "IMAP Failure: $@"; foreach my $box qw( SPAM HAM ) { my $file = "/home/mail/mbox/". $box; $imap->select($box); my @msgs = $imap->search('ALL') or die "Couldn't get all messages\n"; foreach my $msg (@msgs) { open my $pipe, "| formail >> $file" or die("Formail Open Pipe Error: $!"); $imap->message_to_file($pipe, $msg); close $pipe or die("Formail Close Pipe Error: $!"); $imap->delete_message($msg); } # Now expunge the messages and close the folder $imap->expunge($box); $imap->close($box); } $imap->logout();