#!/usr/bin/perl -w

use strict;

use lib '../lib';
use Mail::Box::Manager;
use Mail::Box;

my $mgr = Mail::Box::Manager->new;
my $fn = shift @ARGV or die;

my $folder = $mgr->open($fn) or die "Cannot open $fn";

warn ref $folder;
print $folder->nrMessages, " messages\n";
foreach my $msg ($folder->messages)
{   $msg->printStructure;

    my $simple = $msg->rebuild
      ( keep_message_id => 1
      , rules => ['descendMultiparts', 'descendNested', \&_strip_password]
      );

    $simple->print;
}

sub _strip_password($$@)  # See Mail::Message::Construct::Rebuild
{   my ($msg, $part, %args) = @_;
    return $part if $part->isNested || $part->isMultipart;

    my $decoded = $part->decoded;
    my $text    = $decoded->string;

    $text =~ s/(drs\-password\.*\:\s*).*?(?=drs-)/$1VERWIJDERD\n/gs;

    return $part
        if $decoded->string eq $text;

    ref($part)->new
      ( head      => $part->head->clone
      , body      => ref($decoded)->new(based_on => $decoded, data => $text)
      , container => undef
      );
}


