#!/usr/bin/perl

use strict;

use lib '../lib';
use Mail::Message;

my $fh;
if(@ARGV)
{   my $fn = shift @ARGV;
    open IN, "<:raw", $fn or die "Cannot read from $fn: $!\n";
    $fh = \*IN;
}
else
{   $fh = \*STDIN;
}

my $msg = Mail::Message->read($fh)
   or die "Cannot read message\n";

#$msg->print;
warn "PARTS: ".$msg->parts."\n";

$msg->printStructure;

my @to;

sub collect_to($);
sub collect_to($)
{   my $part = shift;
    if(my $to = $part->head->get('to'))
    {   push @to, $to->addresses;
    }

    if($part->isMultipart) { collect_to($_) for $part->body->parts }
    elsif($part->isNested) { collect_to($part->body->nested) }
}

collect_to($msg);
print "To: ", $_->format, "\n" foreach @to;
