#!/usr/bin/perl

$me = 'firstname\\.lastname';

use warnings;

use Mail::Internet;
use Mail::Address;
use Mail::Field::Date;
use Encode;

binmode(STDOUT, ":utf8");

foreach (@ARGV) {
    open(F, $_);
    @mail = <F>;
    close(F);

    $mail = Mail::Internet->new(\@mail);

    $time = Mail::Field::Date->new(Date => $mail->get('Date'))->time();
    @addr = Mail::Address->parse(decode('MIME-Header',$mail->get('From')));
    $from = lc($addr[0]->address);

    @list = ();

    if ($from =~ /$me/) {
	@addr = Mail::Address->parse(decode('MIME-Header',$mail->get('To')));
	foreach (@addr) {
	    push(@list,lc($_->address));
	}
	@addr = Mail::Address->parse(decode('MIME-Header',$mail->get('Cc')));
	foreach (@addr) {
	    push(@list,lc($_->address));
	}
	@addr = Mail::Address->parse(decode('MIME-Header',$mail->get('Bcc')));
	foreach (@addr) {
	    push(@list,lc($_->address));
	}
    } else {
	push(@list,$from);
    }

    foreach (@list) {
	print "$time $_\n";
    }
}
