#!/usr/bin/perl
use strict;
use warnings;
use File::Copy  'copy';

use lib '../../lib';

use Mail::Box::Manager;
my $mgr  = Mail::Box::Manager->new;

my $orig = 'orig';
my $mbox = 'inbox';

copy $orig, $mbox
   or die "Cannot copy $orig to $mbox: $!";

my $folder = $mgr->open($mbox, access=>'rw')
   or die "Cannot open $mbox: $!\n";

print "folder ",$folder->name," is opened.\n";
print "folder type is ",$folder->type,"\n";


# List all messages in this folder.
#
my @messages = $folder->messages;
print "$mbox ", scalar @messages, " messages:\n";

my $index=0;
my @mailToDelete=();

foreach my $message (@messages) {
   my $from   = $message->get('From') || '<no from>';
   my $subject= $message->subject     || '<no subject>';
   my $date   = $message->get('Date');
   my $body   = $message->decoded;

   printf "message %03d\n", $message->seqnr;
   print STDERR "From   : $from :\n";
   print STDERR "Subject: $subject :\n";
   print STDERR "Date   : $date :\n";

   if ($subject ne 'brol'){
      print STDERR "no brol\n";
      $index++;
      next;
   }
   print STDERR qq(
      /****************************************
       * got '<id123456\@azerty.bc>' at $date *
       * got 'brol to delete'                 *
       ***************************************/

);

  my $outfile='extract';
  my $outbox;
  $outbox = $mgr->open
       ( $outfile
         , access   => 'a'        # append,
         , create   => 1          # create if not existent
       );

  $mgr->copyMessage($outbox, $message);
  $outbox->close;
  print "Copy '$subject': ", $message->size, " bytes.\n";

  print "delete message($index) ...\n";
  $folder->message($index)->delete;
  $index++;
}#end_foreach

print "debug: closing mgr...\n";
$mgr->close($folder);
print "debug: _end_of_game_ ...\n";
